; ;SV25mon.BIN: file format binary ;Disassembly of section .data: ; ; 2025-03-09 The objdmp disassembler format did not match the as86 assembler format well, ; so it still generates 1084 errors. ; ; 2025-03-10 Changed to use the nasm assembler. ; Fewer errors, and mostly due to es: ; ; 2025-03-16 ndisasm outputs in the right syntax for nasm. ; Reworked, and got a file that compiles, ; but with much code that may be data, ; and links to duff labels. ; NULL equ 0 BELL equ 7 TAB equ 9 LF equ 0x0A CR equ 0x0D backslash equ 0x5C RETN_C3 equ 0xC3 ; RETF_CB equ 0xCB ; _0070 equ 0x0070 _0000: mov ax,cs _0002: mov ss,ax _0004: mov sp,0x1f _0007: jmp _02f6 _000a: call subroutine_00ee _000d: call subroutine_02cc _0010: call subroutine_2e8a _0013: call subroutine_3510 _0016: mov bx,0x21 _0019: call subroutine_2e42_print_cstr _001c: jmp _35b4 ; ; ; cstr_LF: db LF,NULL ;001F: 0A 00 cstr_sign_on_message: db CR,LF ;0021: 0D 0A db "SV25 Monitor V1.1" ;0023: db CR,LF,NULL ;0034: 0D 0A 00 ; subroutinesubroutine_0037: subroutine_0037: push bx _0038: push es _0039: cmp ah,2 _003c: jnz _004c _003e: mov bx,0xff00 _0041: mov es,bx _0043: mov bx,0xf70 _0046: call subroutine_01e4 _0049: jmp _00df ; _004c: cmp ah,5 _004f: jnz _0054 _0051: jmp _00d9 ; _0054: cmp ah,6 _0057: jnz _0064 _0059: cmp dl,0xff _005c: mov ah,7 _005e: jz _0064 _0060: mov ah,2 _0062: jmp short _0039 ; _0064: cmp ah,7 _0067: jnz _0081 _0069: mov bx,0xff00 _006c: mov es,bx _006e: mov bx,0xf70 _0071: mov cx,0xff _0074: call subroutine_01b0 _0077: cmp ah,0xff _007a: jnz _00df _007c: jmp short _0074 ; _007e: jmp short _00df ; _0080: nop _0081: cmp ah,0xb _0084: jnz _009b _0086: mov bx,0xff00 _0089: mov es,bx _008b: mov bx,0xf70 _008e: mov al,[es:bx+0xd] _0092: and al,0x80 _0094: jz _00df _0096: mov al,0xff _0098: jmp short _00df ; _009a: nop _009b: cmp ah,0x25 _009e: jnz _00ba _00a0: xor bx,bx _00a2: mov es,bx _00a4: shl al,1 _00a6: shl al,1 _00a8: mov bl,al _00aa: mov ax,dx _00ac: mov [es:bx],ax _00af: add bx,byte +2 _00b2: mov ax,ds _00b4: mov [es:bx],ax _00b7: jmp short _00df _00b9: nop _00ba: cmp ah,0x35 _00bd: jnz _00d9 ; _00bf: pop es _00c0: pop bx _00c1: xor bx,bx _00c3: mov es,bx _00c5: shl al,1 _00c7: shl al,1 _00c9: mov bl,al _00cb: mov ax,[es:bx] _00ce: push ax _00cf: add bx,byte +2 _00d2: mov ax,[es:bx] _00d5: mov es,ax _00d7: pop bx _00d8: ret ; _00d9: xor ax,ax _00db: xor cx,cx _00dd: xor dx,dx ; _00df: pop es _00e0: pop bx _00e1: ret ; _00e2: push bx _00e3: jmp short _00ec _00e5: nop _00e6: xor ax,ax _00e8: xor cx,cx _00ea: xor dx,dx _00ec: pop bx _00ed: ret ; subroutine_00ee: pusha _00ef: push es _00f0: mov ax,0xff00 _00f3: mov es,ax _00f5: mov byte [es:0xfeb],0xc _00fb: mov byte [es:0xf00],0xf _0101: mov byte [es:0xf02],0x80 _0107: mov byte [es:0xf01],0x70 _010d: mov byte [es:0xf0a],0xb8 _0113: mov byte [es:0xf09],1 _0119: mov byte [es:0xf10],0x38 _011f: mov byte [es:0xf12],3 _0125: mov byte [es:0xf11],0x13 _012b: mov byte [es:0xfe1],0 _0131: mov word [es:0xfe8],0xfffd _0138: mov bx,0xf70 _013b: and byte [es:bx+0xc],0x7f _0140: and byte [es:bx+0xd],0x7f _0145: or byte [es:bx+0xe],0x80 _014a: mov al,0xd _014c: or al,0xc0 _014e: mov [es:bx+8],al _0152: mov byte [es:bx+9],1 _0157: mov byte [es:bx+0xa],0xd0 _015c: pop es _015d: popa _015e: ret ; _015f: and byte [es:bx+0xc],0x7f _0164: and byte [es:bx+0xd],0x7f _0169: or byte [es:bx+0xe],0x80 _016e: mov al,0xd _0170: or al,0xc0 _0172: mov [es:bx+8],al _0176: mov byte [es:bx+9],1 _017b: mov byte [es:bx+0xa],0xd0 _0180: ret ; _0181: push ds _0182: push bx _0183: mov ax,0xff00 _0186: mov ds,ax _0188: mov bl,cl _018a: xor bh,bh _018c: shl bl,1 _018e: mov bx,[cs:bx+0x1ac] _0193: and byte [bx+0xc],0x7f _0197: and byte [bx+0xd],0x7f _019b: or byte [bx+0xe],0x80 _019f: mov [bx+8],dh _01a2: mov [bx+9],dl _01a5: mov byte [bx+0xa],0xd0 _01a9: pop bx _01aa: pop ds _01ab: ret ; ; ; ; table_01ac: db $60, $0F db $70, $0F subroutine_01b0: push bx ; 53 _01b1: push cx ; 51 _01b2: mov cx,0xff _01b5: mov al,[es:bx+0xd] _01b9: test al,0x80 _01bb: loope _01b5 _01bd: jcxz _01d7 _01bf: and byte [es:bx+0xd],0x7f _01c4: mov al,[es:bx+0xc] _01c8: test al,0x80 _01ca: jz _01dc _01cc: mov al,[es:bx] _01cf: and byte [es:bx+0xc],0x7f _01d4: jmp short _01dc _01d6: nop _01d7: mov ah,0xff _01d9: jmp short _01e1 _01db: nop _01dc: mov al,[es:bx] _01df: xor ah,ah _01e1: pop cx _01e2: pop bx _01e3: ret ; subroutine_01e4: push cx _01e5: mov cx,0xff _01e8: mov ah,[es:bx+0xe] _01ec: test ah,0x80 _01ef: loope _01e8 _01f1: jcxz _0201 _01f3: and byte [es:bx+0xe],0x7f _01f8: mov [es:bx+2],dl _01fc: xor ah,ah _01fe: jmp short _0203 _0200: nop _0201: mov ah,0xff _0203: pop cx _0204: ret ; subroutine_0205: push bx _0206: push dx _0207: push es _0208: mov dx,0xff00 _020b: mov es,dx _020d: shl bx,1 _020f: mov bx,[cs:bx+table_01ac] _0214: mov dl,al _0216: call subroutine_01e4 _0219: pop es _021a: pop dx _021b: pop bx _021c: ret ; _021d: push bx _021e: mov bx,0 _0221: call subroutine_0205 _0224: pop bx _0225: ret ; _0226: push bx _0227: mov bx,1 _022a: call subroutine_0205 _022d: pop bx _022e: ret ; subroutine_022f: push bx _0230: push dx _0231: push es _0232: mov dx,0xff00 _0235: mov es,dx _0237: shl bx,1 _0239: mov bx,[cs:bx+table_01ac] _023e: mov al,[es:bx+0xd] _0242: and al,0x80 _0244: jz _024c _0246: call subroutine_01b0 _0249: jmp short _024e _024b: nop _024c: xor al,al _024e: pop es _024f: pop dx _0250: pop bx _0251: ret ; _0252: push bx _0253: mov bx,0 _0256: call subroutine_022f _0259: pop bx _025a: ret ; _025b: push bx _025c: mov bx,1 _025f: call subroutine_022f _0262: pop bx _0263: ret ; subroutine_0264: push bx _0265: push es _0266: mov bx,0xff00 _0269: mov es,bx _026b: rol al,1 _026d: out dx,al _026e: and [es:0xf10],ah _0273: pop es _0274: pop bx _0275: ret ; _0276: push ax _0277: push dx _0278: mov dx,0x8000 _027b: mov ah,0xdf _027d: call subroutine_0264 _0280: pop dx _0281: pop ax _0282: ret ; _0283: push ax _0284: push dx _0285: mov dx,0x8001 _0288: mov ah,0xef _028a: call subroutine_0264 _028d: pop dx _028e: pop ax _028f: ret ; _0290: push ax _0291: push dx _0292: mov dx,0x8002 _0295: mov ah,0xf7 _0297: call subroutine_0264 _029a: pop dx _029b: pop ax _029c: ret ; _029d: mov dx,0x8040 _02a0: in al,dx _02a1: ret ; _02a2: mov dx,0x8001 _02a5: in al,dx _02a6: ret ; _02a7: mov dx,0x8002 _02aa: in al,dx _02ab: ret ; _02ac: push bx _02ad: push es _02ae: mov bx,0xff00 _02b1: mov es,bx _02b3: mov bl,ch _02b5: sub bl,2 _02b8: xor bh,bh _02ba: mov al,[cs:bx+0x2c9] _02bf: not al ; _02c1: or [es:0xf10],al _02c6: pop es _02c7: pop bx _02c8: ret ; _02c9: db $0df, $0ef _02cb: db $0f7 ; subroutine_02cc: push ax ; $50 _02cd: push si ; $56 push ds _02cf: mov ax,0 _02d2: mov ds,ax _02d4: mov si,4 _02d7: mov word [si],0x2f94 _02db: mov [si+2],cs _02de: mov si,0xc _02e1: mov word [si],0x2f94 _02e5: mov [si+2],cs _02e8: mov si,0xc8 _02eb: mov word [si],0x312a _02ef: mov [si+2],cs _02f2: pop ds _02f3: pop si _02f4: pop ax _02f5: ret ; _02f6: pop bp _02f7: mov ax,0x40 _02fa: mov ds,ax _02fc: mov ax,0x60 _02ff: mov ss,ax _0301: mov sp,0x2a7 _0304: mov ax,cs _0306: mov es,ax _0308: push bp _0309: ret ; subroutine_030a: pusha _030b: hint_nop0 ax _030e: add [si+0x11],dh _0311: mov word [0x12e],0x3b4 _0317: mov cx,2 _031a: mov byte [0x137],1 _031f: jmp short _0330 ; _0321: nop _0322: mov word [0x12e],0x3b7 _0328: mov cx,1 _032b: mov byte [0x137],2 _0330: mov bl,al _0332: and bl,0xf0 _0335: cmp bl,0xa0 _0338: jz _035b ; _033a: mov bx,[0x13f] _033e: mov al,[es:bx+si] _0341: mov [bx+0x141],al _0345: push bx _0346: sub bx,[0x13f] _034a: add bx,0x130 _034e: mov [bx],al _0350: pop bx _0351: inc bx _0352: loop _033e _0354: mov [0x13f],bx _0358: jmp short _03ad _035a: nop _035b: mov word [0x130],0x3ba _0361: mov byte [0x137],0 _0366: mov byte [0x139],1 _036b: push ax _036c: mov bx,[0x13f] _0370: mov cx,2 _0373: mov al,[es:bx+si] _0376: mov [bx+0x141],al _037a: push bx _037b: sub bx,[0x13f] _037f: add bx,0x134 _0383: mov [bx],al _0385: pop bx _0386: inc bx _0387: loop _0373 _0389: mov [0x13f],bx _038d: pop ax _038e: hint_nop0 ax _0391: add [si+0x19],si _0394: mov ax,[0x12e] _0397: xchg ax,[0x130] _039b: mov [0x12e],ax _039e: mov al,[0x136] _03a1: xchg al,[0x137] _03a5: mov [0x136],al _03a8: mov byte [0x139],3 _03ad: mov byte [0x14c],2 _03b2: popa _03b3: ret ; ; ; Never called ; _03b4: db "AW",0 ;03B4: 41 57 'AW' db "AL",$00 ;03B7: 41 4C 'AL' db $00,$00 ;03BA: 00 00 subroutine_03bc equ $03bc ; _03bc: pushaw ; 60 _03bd: mov cx, 1 ; B9 01 00 ; _03c0: mov byte [8],1; C6 06 08 00 01 _03c5: cmp al,0xe2 _03c7: jz _0410 _03c9: cmp al,0xe1 _03cb: jz _0410 _03cd: cmp al,0xe0 _03cf: jz _0410 _03d1: cmp al,0xe3 _03d3: jz _0410 _03d5: cmp al,0xeb _03d7: jz _0410 _03d9: cmp al,0xe9 _03db: jz _0408 _03dd: cmp al,0xe8 _03df: jz _0408 _03e1: cmp al,0x9a _03e3: jz _03fd _03e5: cmp al,0xea _03e7: jz _03fd _03e9: and al,0xf _03eb: cbw _03ec: shl ax,1 _03ee: mov bx,0x473 _03f1: add bx,ax _03f3: mov bx,[cs:bx] _03f6: mov [0x12c],bx _03fa: jmp short _0410 _03fc: nop _03fd: mov cx,4 _0400: mov byte [0x13e],1 _0405: jmp short _0410 _0407: nop _0408: mov cx,2 _040b: mov byte [8],0 _0410: mov bx,[0x13f] _0414: mov al,[es:bx+si] _0417: mov [bx+0x141],al _041b: push bx _041c: sub bx,[0x13f] _0420: add bx,0x12e _0424: mov [bx],al _0426: pop bx _0427: inc bx _0428: loop _0414 _042a: mov [0x13f],bx _042e: test byte [0x13e],1 _0433: jz _0451 _0435: mov ax,[0x12e] _0438: xchg ax,[0x130] _043c: mov [0x12e],ax _043f: mov byte [0x136],1 _0444: mov byte [0x137],1 _0449: mov byte [0x14c],2 _044e: jmp short _0471 _0450: nop _0451: mov ax,[0x12e] _0454: add ax,3 _0457: test byte [8],1 _045c: jz _0460 _045e: cbw _045f: dec ax _0460: add ax,[0x12a] _0464: mov [0x12e],ax _0467: mov byte [0x136],1 _046c: mov byte [0x14c],1 _0471: popa _0472: ret ; _0473: DW cstr_0493 DW cstr_0496 DW cstr_049A DW cstr_049D DW cstr_04A1 DW cstr_04A4 DW cstr_04A8 DW cstr_04AC DW cstr_04AF DW cstr_04B2 DW cstr_04B5 DW cstr_04B9 DW cstr_04BD DW cstr_04C1 DW cstr_04C5 DW cstr_04C9 ;0491: C9 04 ; cstrings_branch_mnenonics: ; cstr_0493: db "BV" ,NULL cstr_0496: db "BNV" ,NULL cstr_049A: db "BC" ,NULL cstr_049D: db "BNC" ,NULL cstr_04A1: db "BZ" ,NULL cstr_04A4: db "BNZ" ,NULL cstr_04A8: db "BNH" ,NULL cstr_04AC: db "BH" ,NULL ;04AC cstr_04AF: db "BN" ,NULL ;04AF cstr_04B2: db "BP" ,NULL ;04B2: cstr_04B5: db "BPE" ,NULL ;04B5: cstr_04B9: db "BPO" ,NULL ;04B9: cstr_04BD: db "BLT" ,NULL ;04BD: cstr_04C1: db "BGE" ,NULL ;04C1: cstr_04C5: db "BLE" ,NULL ;04C5: cstr_04C9: db "BGT" ,NULL ;04C9: db NULL ;04CD: 00 ; ; ; subroutine_04ce: push ax _04cf: push bx _04d0: mov byte [0x136],2 _04d5: mov bx,[0x13f] _04d9: mov al,[es:bx+si] _04dc: mov [bx+0x141],al _04e0: mov [0x12e],ax _04e3: inc word [0x13f] _04e7: mov byte [0x14c],1 _04ec: pop bx _04ed: pop ax _04ee: ret ; db 0 subroutine_04f0: push ax push bx _04f2: shr al,byte 3 _04f5: and al,7 _04f7: cbw _04f8: shl ax,1 _04fa: mov bx,0x524 _04fd: add bx,ax _04ff: mov ax,[cs:bx] _0502: mov [0x12e],ax _0505: mov bx,[0x13f] _0509: mov al,[es:bx+si] _050c: mov [bx+0x141],al _0510: inc word [0x13f] _0514: mov [0x130],ax _0517: mov byte [0x137],2 _051c: mov byte [0x14c],2 _0521: pop bx _0522: pop ax _0523: ret ; _0524: dw cstr_0534 dw cstr_0536 dw cstr_0538 dw cstr_053a dw cstr_053c dw cstr_053e dw cstr_0540 dw cstr_0542 cstr_0534: db 'B', NULL cstr_0536: db 'C', NULL cstr_0538: db 'D', NULL cstr_053a: db 'E', NULL cstr_053c: db 'H', NULL cstr_053e: db 'L', NULL cstr_0540: db 'M', NULL cstr_0542: db 'A', NULL subroutine_0544: push ax push bx _0546: push cx _0547: mov cx,[0xd8] _054b: jcxz _0580 _054d: mov bx,cx _054f: dec bx _0550: push bx _0551: add bx,0xee _0555: mov al,[bx] _0557: pop bx _0558: shl bx,1 _055a: add bx,0xda _055e: mov bx,[bx] _0560: push ds _0561: push ax _0562: mov ax,[0x20] _0565: mov ds,ax _0567: pop ax _0568: mov [bx],al _056a: pop ds _056b: loop _054d _056d: dec word [0x24] _0571: mov bx,0x11e _0574: mov ax,[0x24] _0577: mov [bx+2],ax _057a: mov word [0xd8],0 _0580: pop cx _0581: pop bx _0582: pop ax _0583: ret ; subroutine_0584: pusha _0585: push es _0586: push cs _0587: pop es _0588: mov ax,[0x128] _058b: call subroutine_2cde _058e: mov al,0x3a _0590: call subroutine_2e32 _0593: mov ax,[0x12a] _0596: call subroutine_2cde _0599: mov al,0x20 _059b: call subroutine_2e32 _059e: mov bx,0x141 _05a1: mov cx,[0x13f] _05a5: mov al,[bx] _05a7: call subroutine_2cd2 _05aa: inc bx _05ab: loop _05a5 _05ad: mov cx,7 _05b0: sub cx,[0x13f] _05b4: shl cx,1 _05b6: mov al,0x20 _05b8: call subroutine_2e32 _05bb: loop _05b8 _05bd: mov bx,[0x12c] _05c1: call subroutine_2e42_print_cstr _05c4: cmp byte [0x14c],0 _05c9: jnz _05ce _05cb: jmp short _0639 _05cd: nop _05ce: mov al,9 _05d0: call subroutine_2e32 _05d3: mov bx,[0x14a] _05d7: call subroutine_2e42_print_cstr _05da: mov ah,[0x139] _05de: sub ah,2 _05e1: cmp byte [0x139],3 _05e6: jnl _05ea _05e8: mov ah,0 _05ea: mov bx,[0x12e] _05ee: mov al,[0x136] _05f1: call subroutine_077e _05f4: cmp byte [0x14c],1 _05f9: jz _0639 _05fb: mov bx,0x641 _05fe: test byte [0x13e],1 _0603: jz _0608 _0605: mov bx,0x643 _0608: call subroutine_2e42_print_cstr _060b: mov ah,[0x139] _060f: cmp ah,3 _0612: jl _0616 _0614: mov ah,0 _0616: mov bx,[0x130] _061a: mov al,[0x137] _061d: call subroutine_077e _0620: cmp byte [0x14c],2 _0625: jz _0639 _0627: mov bx,0x641 _062a: call subroutine_2e42_print_cstr _062d: mov bx,[0x132] _0631: mov al,[0x138] _0634: mov ah,0 _0636: call subroutine_077e _0639: mov al,0xd _063b: call subroutine_2e32 _063e: pop es _063f: popa _0640: ret ; ; _0641: db ",",0 _0643: db ":",0 db NULL ;0645: 00 ; subroutine_0646: push ax push bx _0648: mov bx,0x0761 _064b: call subroutine_2e42_print_cstr _064e: mov bx,0x77a _0651: hint_nop8 word [0x22] _0656: pcmpeqb mm0,[bp+di] _0659: mov bx,0x077c _065c: call subroutine_2e42_print_cstr _065f: mov bx,0x077a _0662: hint_nop8 word [0x22] _0667: push cs _0668: jz _066d _066a: mov bx,0x077c _066d: call subroutine_2e42_print_cstr _0670: mov bx,0x77a _0673: hint_nop8 word [0x22] _0678: or ax,0x374 _067b: mov bx,0x77c _067e: call subroutine_2e42_print_cstr _0681: mov bx,0x77a _0684: hint_nop8 word [0x22] _0689: or al,0x74 _068b: add di,[bp+di+0x77c] _068f: call subroutine_2e42_print_cstr _0692: mov bx,0x77a _0695: hint_nop8 word [0x22] _069a: or si,[si+3] _069d: mov bx,0x77c _06a0: call subroutine_2e42_print_cstr _06a3: mov bx,0x77a _06a6: hint_nop8 word [0x22] _06ab: or dh,[si+3] _06ae: mov bx,0x77c _06b1: call subroutine_2e42_print_cstr _06b4: mov bx,0x77a _06b7: hint_nop8 word [0x22] _06bc: or [si+3],si _06bf: mov bx,0x77c _06c2: call subroutine_2e42_print_cstr _06c5: mov bx,0x77a _06c8: hint_nop8 word [0x22] _06cd: or [si+3],dh _06d0: mov bx,0x77c _06d3: call subroutine_2e42_print_cstr _06d6: mov bx,0x77a _06d9: hint_nop8 word [0x22] _06de: pop es _06df: jz _06e4 _06e1: mov bx,0x77c _06e4: call subroutine_2e42_print_cstr _06e7: mov bx,0x77a _06ea: hint_nop8 word [0x22] _06ef: push es _06f0: jz _06f5 _06f2: mov bx,0x77c _06f5: call subroutine_2e42_print_cstr _06f8: mov bx,0x77a _06fb: hint_nop8 word [0x22] _0700: add ax,0x374 _0703: mov bx,0x77c _0706: call subroutine_2e42_print_cstr _0709: mov bx,0x77a _070c: hint_nop8 word [0x22] _0711: add al,0x74 _0713: add di,[bp+di+0x77c] _0717: call subroutine_2e42_print_cstr _071a: mov bx,0x77a _071d: hint_nop8 word [0x22] _0722: add si,[si+3] _0725: mov bx,0x77c _0728: call subroutine_2e42_print_cstr _072b: mov bx,0x77a _072e: hint_nop8 word [0x22] _0733: add dh,[si+3] _0736: mov bx,0x77c _0739: call subroutine_2e42_print_cstr _073c: mov bx,0x77a _073f: hint_nop8 word [0x22] _0744: add [si+3],si _0747: mov bx,0x77c _074a: call subroutine_2e42_print_cstr _074d: mov bx,0x77a _0750: hint_nop8 word [0x22] _0755: add [si+3],dh _0758: mov bx,0x77c _075b: call subroutine_2e42_print_cstr _075e: pop bx _075f: pop ax _0760: ret ; _0761: db CR ;;; db "PSW:",TAB,"MRRRVDIBSZFAFPIC", ; db CR,TAB,NULL ;0777: 0D 09 00 _0762: push ax ; 50 push bx ; 53 _0764: push di _0765: cmp cl,[bx+di] _0767: dec bp _0768: push dx _0769: push dx _076a: push dx _076b: push si ; subroutine_076c: inc sp _076d: dec cx _076e: inc dx _076f: push bx _0770: pop dx _0771: inc si _0772: inc cx _0773: inc si _0774: push ax _0775: dec cx _0776: inc bx _0777: or ax,9 _077a: xor [bx+si],al _077c: xor [bx+si],ax ; subroutine_077e: pusha _077f: cmp al,4 _0781: jnz _0786 _0783: jmp short _07d9 _0785: nop _0786: cmp al,2 _0788: jz _07f9 _078a: cmp al,1 _078c: jz _0801 _078e: cmp byte [0x14c],1 _0793: jnz _079c _0795: test byte [0x13c],1 _079a: jnz _07b1 _079c: cmp byte [0x14c],2 _07a1: jnz _07bf _07a3: test byte [0x13c],1 _07a8: jz _07bf _07aa: test byte [0x13d],1 _07af: jz _07bf _07b1: mov byte [0x13d],0 _07b6: push bx _07b7: mov bx,[0x13a] _07bb: call subroutine_2e42_print_cstr _07be: pop bx _07bf: mov cl,ah _07c1: cmp cl,0 _07c4: jz _07f3 _07c6: mov al,0x5b _07c8: call subroutine_2e32 _07cb: mov ax,[0x134] _07ce: cmp cl,1 _07d1: jz _07eb _07d3: call subroutine_2cd2 _07d6: jmp short _07ee _07d8: nop _07d9: mov cl,ah _07db: mov al,0x5b _07dd: call subroutine_2e32 _07e0: call subroutine_2e42_print_cstr _07e3: mov al,0x5d _07e5: call subroutine_2e32 _07e8: jmp short _0806 _07ea: nop _07eb: call subroutine_2cde ; _07ee: mov al,0x5d _07f0: call subroutine_2e32 ; _07f3: call subroutine_2e42_print_cstr _07f6: jmp short _0806 _07f8: nop _07f9: mov al,bl _07fb: call subroutine_2cd2 _07fe: jmp short _0806 _0800: nop ; _0801: mov ax,bx _0803: call subroutine_2cde _0806: popa _0807: ret ; subroutine_0808: push ax _0809: push bx _080a: mov bx,0x8c6 _080d: call subroutine_2e42_print_cstr _0810: mov ax,[0xa] _0813: call subroutine_2cde _0816: mov bx,0x8cb _0819: call subroutine_2e42_print_cstr _081c: mov ax,[0xc] _081f: call subroutine_2cde _0822: mov bx,0x8d2 _0825: call subroutine_2e42_print_cstr _0828: mov ax,[0xe] _082b: call subroutine_2cde _082e: mov bx,0x8d8 _0831: call subroutine_2e42_print_cstr _0834: mov ax,[0x10] _0837: call subroutine_2cde _083a: mov bx,0x8de _083d: call subroutine_2e42_print_cstr _0840: mov ax,[0x18] _0843: call subroutine_2cde _0846: mov bx,0x8e4 _0849: call subroutine_2e42_print_cstr _084c: mov ax,[0x16] _084f: call subroutine_2cde _0852: mov bx,0x8ea _0855: call subroutine_2e42_print_cstr _0858: mov ax,[0x12] _085b: call subroutine_2cde _085e: mov bx,0x8f0 _0861: call subroutine_2e42_print_cstr _0864: mov ax,[0x14] _0867: call subroutine_2cde _086a: mov bx,0x8f6 _086d: call subroutine_2e42_print_cstr _0870: mov ax,[0x1a] _0873: call subroutine_2cde _0876: mov bx,0x8fc _0879: call subroutine_2e42_print_cstr _087c: mov ax,[0x1c] _087f: call subroutine_2cde _0882: mov bx,0x903 _0885: call subroutine_2e42_print_cstr _0888: mov ax,[0x1e] _088b: call subroutine_2cde _088e: mov bx,0x909 _0891: call subroutine_2e42_print_cstr _0894: mov ax,[0x20] _0897: call subroutine_2cde _089a: mov bx,0x90f _089d: call subroutine_2e42_print_cstr _08a0: mov ax,[0x24] _08a3: call subroutine_2cde _08a6: call subroutine_0646 _08a9: mov bx,0x915 _08ac: call subroutine_2e42_print_cstr _08af: mov ax,[0x20] _08b2: mov [0x3c],ax _08b5: mov ax,[0x24] _08b8: mov [0x3e],ax _08bb: mov al,0 _08bd: mov bx,0x3c _08c0: call subroutine_378c _08c3: pop bx _08c4: pop ax _08c5: ret ; ; ; These look a bit misaligned, check them. ; _08c6: db " AW=" ,NULL ;08C6: 20 41 57 3D _08cb: db " BW=" ,NULL ;08CB: 20 20 20 42 57 3D _08d2: db " CW=" ,NULL ;08D2: 20 20 43 57 3D _08d8: db " DW=" ,NULL ;08D8: 20 20 44 57 3D _08de: db " SP=" ,NULL ;08DE: 20 20 53 50 3D _08e4: db " BP=" ,NULL ;08E4: 20 20 42 50 3D _08ea: db " IX=" ,NULL ;08EA: 20 20 49 58 3D _08f0: db " IY=" ,NULL ;08F0: 20 20 49 59 3D db CR ;08F6 0D _08f7: db "DS0=" ,NULL ;08F7: 44 53 30 3D _08fc: db " DS1=" ,NULL ;08FC: 20 20 44 53 31 3D _0903: db " SS=" ,NULL ;0903: 20 20 53 53 3D _0909: db " PS=" ,NULL ;0909: 20 20 50 53 3D _090f: db " PC=" ,NULL ;090F: 20 20 50 43 3D db CR,NULL,NULL ;0914: 00 0D 00 00 ; subroutine_0918: _0918: push ax _0919: push bx _091a: push cx ; _091b: mov ax,[bx] _091d: call subroutine_2cde _0920: mov al,0x3a _0922: call subroutine_2e32 _0925: mov ax,[bx+2] _0928: call subroutine_2cde _092b: mov al,0x20 _092d: call subroutine_2e32 _0930: call subroutine_2e32 _0933: call subroutine_2e32 _0936: push ds _0937: push bx _0938: mov ax,[bx] _093a: mov bx,[bx+2] _093d: mov ds,ax _093f: mov al,[bx] _0941: pop bx _0942: pop ds _0943: call subroutine_2cd2 _0946: mov al,0x2d _0948: call subroutine_2e32 _094b: call subroutine_0f74 _094e: call subroutine_1118 _0951: call subroutine_3376 _0954: cmp al,0x2e _0956: jz _0982 _0958: cmp al,0xd _095a: jz _0978 _095c: cmp al,0x2d _095e: jz _097d _0960: call subroutine_11ec _0963: jc _0986 _0965: push ds _0966: push bx _0967: push ax _0968: mov ax,[bx] _096a: mov bx,[bx+2] _096d: mov ds,ax _096f: pop ax _0970: mov [bx],al _0972: cmp al,[bx] _0974: pop bx _0975: pop ds _0976: jnz _0986 _0978: inc word [bx+2] _097b: jmp short _091b _097d: dec word [bx+2] _0980: jmp short _091b _0982: clc _0983: jmp short _0987 _0985: nop _0986: stc ; _0987: pop cx _0988: pop bx _0989: pop ax _098a: ret ; _098b: db 0 subroutine_098c: push ax call subroutine_076c _0990: add dl,al _0992: jnz _0998 _0994: clc _0995: jmp short _0999 _0997: nop _0998: stc _0999: pop ax _099a: ret ; _099b: db $00 ; subroutine_099c: jcxz _09ad ; E3 0F _099e: call subroutine_10fc ; E8 5B 07 _09a1: mov dh,6 _09a3: jc _09b8 _09a5: mov [es:bx],al _09a8: add dl,al _09aa: inc bx _09ab: loop _099e ; _09ad: call subroutine_098c _09b0: mov dh,0 _09b2: jc _09b8 _09b4: clc _09b5: jmp short _09b9 _09b7: nop _09b8: stc _09b9: ret ; subroutine_09ba: push ax _09bb: push bx _09bc: push cx _09bd: call subroutine_300c _09c0: call subroutine_1118 _09c3: call subroutine_3376 _09c6: cmp al,0xd _09c8: jz _09ec _09ca: cmp al,0x27 _09cc: jz _09e5 ; _09ce: call subroutine_11ec _09d1: jc _09f0 ; _09d3: push ds _09d4: push bx ; _09d5: mov cx,[bx] _09d7: mov bx,[bx+2] _09da: mov ds,cx _09dc: mov [bx],al _09de: pop bx _09df: pop ds _09e0: inc word [bx+2] _09e3: jmp short _09bd ; _09e5: call subroutine_0c3c _09e8: jc _09f0 _09ea: jmp short _09bd _09ec: clc _09ed: jmp short _09f1 _09ef: nop _09f0: stc _09f1: pop cx _09f2: pop bx _09f3: pop ax _09f4: ret ; ; _09f5: db 0 ; ; subroutine_09f6: push ax push bx _09f8: push es _09f9: inc dx _09fa: add [bx+si],al _09fc: mov [0x40],al _09ff: mov byte [0x13c],1 _0a04: mov al,ah _0a06: mov [0x41],al _0a09: shr al,byte 3 _0a0c: and al,7 _0a0e: mov word [0x13a],0xb46 _0a14: prefetchnta byte [0x40] _0a19: add [si+0xa],dh _0a1c: hint_nop32 ax _0a1f: add ax,di _0a21: push es _0a22: cmp al,[bx+di] _0a24: push ax _0a25: or bx,[bx+si-0x1f2f] _0a29: mov bx,data_2c06_register_names _0a2c: add bx,ax _0a2e: mov ax,[cs:bx] _0a31: mov [0x12e],ax _0a34: mov al,[0x41] _0a37: mov ah,al _0a39: shr ah,byte 6 _0a3c: and ah,3 _0a3f: jz _0a6d _0a41: dec ah _0a43: jz _0aa1 _0a45: dec ah _0a47: jz _0a78 _0a49: and al,7 _0a4b: prefetchnta byte [0x40] _0a50: add [si+4],dh _0a53: hint_nop32 ax _0a56: add bx,[bx+si-0x1f2f] _0a5a: mov bx,data_2c06_register_names _0a5d: add bx,ax _0a5f: mov ax,[cs:bx] _0a62: mov [0x130],ax _0a65: mov byte [0x13c],0 _0a6a: jmp _0b00 _0a6d: and al,7 _0a6f: cmp al,6 _0a71: jnz _0ab9 _0a73: mov byte [0x42],1 _0a78: mov bx,[0x13f] _0a7c: mov al,[es:bx+si] _0a7f: mov [bx+0x141],al _0a83: mov dl,al _0a85: inc bx _0a86: mov al,[es:bx+si] _0a89: mov [bx+0x141],al _0a8d: add word [0x13f],byte +2 _0a92: mov ah,al _0a94: mov al,dl _0a96: mov [0x134],ax _0a99: mov byte [0x139],1 _0a9e: jmp short _0ab9 _0aa0: nop _0aa1: mov bx,[0x13f] _0aa5: mov al,[es:bx+si] _0aa8: mov [bx+0x141],al _0aac: inc word [0x13f] _0ab0: cbw _0ab1: mov [0x134],ax _0ab4: mov byte [0x139],2 _0ab9: test byte [0x42],1 _0abe: jnz _0ad7 _0ac0: mov al,[0x41] _0ac3: and al,7 _0ac5: cbw _0ac6: shl ax,1 _0ac8: mov bx,0x0b02 _0acb: add bx,ax _0acd: mov bx,[cs:bx] _0ad0: mov [0x130],bx _0ad4: jmp short _0ae2 _0ad6: nop _0ad7: mov word [0x130],0x0b5a _0add: mov byte [0x139],1 _0ae2: prefetchnta byte [0x40] _0ae7: add [di+0x16],si _0aea: mov ax,[0x130] _0aed: xchg ax,[0x12e] _0af1: mov [0x130],ax _0af4: cmp byte [0x139],0 _0af9: jz _0b00 _0afb: add byte [0x139],2 _0b00: popa _0b01: ret ; ; little-endian jump table on even boundary: ; ; 00000b02: 0b12 0b1a 0b22 0b2a 0b32 0b37 0b3c 0b41 table_0B02: dw _0B12 dw _0B1A dw _0B22 dw _0B2A dw _0B32 dw _0B37 dw _0B3C dw _0B41 ; _0B12: db "[BW+IX]" ,NULL _0B1A: db "[BW+IY]" ,NULL _0B22: db "[BP+IX]" ,NULL _0B2A: db "[BP+IY]" ,NULL _0B32: db "[IX]" ,NULL _0B37: db "[IY]" ,NULL _0B3C: db "[BP]" ,NULL _0B41: db "[BW]" ,NULL _0B46: db "BYTE PTR " ,NULL _0B50: db "WORD PTR " ,NULL db NULL,NULL subroutine_0b5c: _0b5c: pusha _0b5d: push ds _0b5e: push es _0b5f: pushf _0b60: mov ax,[bx+4] _0b63: mov dx,[bx+6] _0b66: shr dx,byte 4 _0b69: add ax,dx _0b6b: mov es,ax _0b6d: mov di,[bx+6] _0b70: and di,byte +0xf _0b73: mov si,[bx+2] _0b76: and si,byte +0xf _0b79: mov ax,[bx] _0b7b: mov dx,[bx+2] _0b7e: shr dx,byte 4 _0b81: add ax,dx _0b83: mov ds,ax _0b85: mov bp,cx _0b87: mov bx,ds _0b89: mov ax,bx _0b8b: shr ax,byte 0xc _0b8e: shl bx,byte 4 _0b91: add bx,si _0b93: jnc _0b96 _0b95: inc ax _0b96: dec bx _0b97: add bx,cx _0b99: jnc _0b9c _0b9b: inc ax _0b9c: mov dx,es _0b9e: mov cx,dx _0ba0: shr cx,byte 0xc _0ba3: shl dx,byte 4 _0ba6: add dx,di _0ba8: jnc _0bab _0baa: inc cx _0bab: cmp ax,cx _0bad: jc _0bc4 _0baf: jnz _0bb5 _0bb1: cmp bx,dx _0bb3: jc _0bc4 _0bb5: add dx,bp _0bb7: jnc _0bba _0bb9: inc cx _0bba: cmp ax,cx _0bbc: jc _0bcc _0bbe: ja _0bc4 _0bc0: cmp bx,dx _0bc2: jna _0bcc _0bc4: mov cx,bp _0bc6: cld _0bc7: rep movsb _0bc9: jmp short _0bd7 _0bcb: nop _0bcc: mov cx,bp _0bce: add si,cx _0bd0: add di,cx _0bd2: dec si _0bd3: dec di _0bd4: std _0bd5: rep movsb _0bd7: popf _0bd8: pop es _0bd9: pop ds _0bda: popa _0bdb: ret ; subroutine_0bdc: call subroutine_11fc _0bdf: mov dh,5 _0be1: jc _0bf9 _0be3: add dl,al _0be5: add dl,ah _0be7: push ax _0be8: mov ax,0 _0beb: call subroutine_098c _0bee: pop ax _0bef: mov dh,0 _0bf1: jc _0bf9 _0bf3: mov es,ax _0bf5: clc _0bf6: jmp short _0bfa _0bf8: nop _0bf9: stc _0bfa: ret ; _0bfb: db 0 ;;; add al,ch subroutine_0bfc: call 0x11fc ; E8 FD 05 _0bff: mov dh, 5 ; B6 05 ; _0c01: jc _0c39 _0c03: mov bx,ax _0c05: call subroutine_11fc _0c08: jc _0c39 _0c0a: add dl,al _0c0c: add dl,ah _0c0e: add dl,bl _0c10: add dl,bh _0c12: call subroutine_098c _0c15: mov dh,0 _0c17: jc _0c39 _0c19: mov [0x20],bx _0c1d: mov [0x24],ax _0c20: mov [0x6c],bx _0c24: mov [0x6e],ax _0c27: mov [0x80],bx _0c2b: mov [0x82],ax _0c2e: mov [0x11e],bx _0c32: mov [0x120],ax _0c35: clc _0c36: jmp short _0c3a _0c38: nop _0c39: stc _0c3a: ret ; db 0 ; subroutine_0c3c: push ax push bx _0c3e: push cx _0c3f: push si _0c40: push di _0c41: mov di,bx _0c43: call subroutine_300c _0c46: call subroutine_1118 _0c49: call subroutine_3376 _0c4c: cmp al,0x27 _0c4e: jnz _0c98 _0c50: call subroutine_1118 _0c53: mov bx,0x44 _0c56: mov cx,0 _0c59: call subroutine_1118 _0c5c: cmp al,0xd _0c5e: jz _0c98 _0c60: cmp al,0x27 _0c62: jnz _0c71 _0c64: call subroutine_1118 _0c67: cmp al,0x27 _0c69: jz _0c71 _0c6b: call subroutine_3376 _0c6e: jmp short _0c7f _0c70: nop _0c71: push bx _0c72: add bx,cx _0c74: mov [bx],al _0c76: pop bx _0c77: inc cx _0c78: cmp cx,byte +0x28 _0c7b: jg _0c98 _0c7d: jmp short _0c59 _0c7f: jcxz _0c94 _0c81: push es _0c82: push di _0c83: mov si,0x44 _0c86: mov ax,[di] _0c88: mov di,[di+2] _0c8b: mov es,ax _0c8d: rep movsb _0c8f: pop si _0c90: pop es _0c91: mov [si+2],di _0c94: clc _0c95: jmp short _0c99 _0c97: nop _0c98: stc _0c99: pop di _0c9a: pop si _0c9b: pop cx _0c9c: pop bx _0c9d: pop ax _0c9e: ret ; db 0 subroutine_0ca0: push ax ; $50 push bx ; $53 _0ca2: mov bx,0xcb9 _0ca5: mov [0x12c],bx _0ca9: mov [0x12e],ax _0cac: mov byte [0x136],2 _0cb1: mov byte [0x14c],1 _0cb6: pop bx _0cb7: pop ax _0cb8: ret ; _0cb9: inc sp _0cba: inc dx _0cbb: add [bx+si+0x53],dl _0cbe: push cx _0cbf: mov bx,0x6c _0cc2: call subroutine_2cea _0cc5: jc _0cf7 _0cc7: cmp al,0 _0cc9: jz _0cd6 _0ccb: cmp al,1 _0ccd: jz _0cdc _0ccf: cmp al,2 _0cd1: jz _0ce8 _0cd3: jmp short _0cf7 _0cd5: nop _0cd6: mov bx,0x6c _0cd9: jmp short _0cee _0cdb: nop _0cdc: mov ax,[0x1a] _0cdf: mov [0x6c],ax _0ce2: mov bx,0x6c _0ce5: jmp short _0cee _0ce7: nop _0ce8: mov bx,0x6c _0ceb: jmp short _0cee _0ced: nop _0cee: mov ax,8 _0cf1: call subroutine_0d9e _0cf4: jmp short _0cfa _0cf6: nop _0cf7: call subroutine_0e1e _0cfa: pop cx _0cfb: pop bx _0cfc: pop ax _0cfd: ret ; subroutine_0cfe: push ax _0cff: push bx _0d00: push cx _0d01: push dx _0d02: push si _0d03: mov dx,ax _0d05: mov ax,[bx] _0d07: call subroutine_2cde _0d0a: mov al,0x3a _0d0c: call subroutine_2e32 _0d0f: mov ax,[bx+2] _0d12: call subroutine_2cde _0d15: push bx _0d16: mov bx,0xd97 _0d19: call subroutine_2e42_print_cstr _0d1c: pop bx _0d1d: mov si,0 _0d20: mov cx,0x10 _0d23: cmp cx,byte +8 _0d26: jnz _0d2d _0d28: mov al,0x2d _0d2a: call subroutine_2e32 _0d2d: cmp dx,cx _0d2f: jnl _0d3c _0d31: mov al,0x20 _0d33: call subroutine_2e32 _0d36: call subroutine_2e32 _0d39: jmp short _0d51 _0d3b: nop _0d3c: push ds _0d3d: push bx _0d3e: mov ax,[bx] _0d40: mov bx,[bx+2] _0d43: mov ds,ax _0d45: mov al,[bx+si] _0d47: pop bx _0d48: pop ds _0d49: ; mov [si+0x70],al ; assembler shortens this to ; 00000D49 884470 mov [si+0x70],al ; When it needs to be this: ; 00000D49 88847000 mov [si+0x70],al ; db $88,$44 ; force opcode dw $0070 ; force 16-bit word _0d4d: call subroutine_2cd2 _0d50: inc si _0d51: cmp cx,byte +9 _0d54: jz _0d5b _0d56: mov al,0x20 _0d58: call subroutine_2e32 _0d5b: loop _0d23 _0d5d: mov bx,0xd9a _0d60: call subroutine_2e42_print_cstr _0d63: mov cx,0x10 _0d66: sub cx,dx _0d68: jcxz _0d71 _0d6a: mov al,0x20 _0d6c: call subroutine_2e32 _0d6f: loop _0d6a _0d71: mov si,0 _0d74: mov cx,dx _0d76: ; ; mov al,[si+0x70] db $8A,$84 ; force opcode dw $0070 ; force 16-bit word ; _0d7a: and al,0x7f _0d7c: cmp al,0x7f _0d7e: jz _0d84 _0d80: cmp al,0x20 _0d82: jnl _0d86 _0d84: mov al,0x2e _0d86: call subroutine_2e32 _0d89: inc si _0d8a: loop _0d76 _0d8c: mov al,0xd _0d8e: call subroutine_2e32 _0d91: pop si _0d92: pop dx _0d93: pop cx _0d94: pop bx _0d95: pop ax _0d96: ret ; _0d97: db " ", 0 ; and %ah,(%bx,%si) _0d9b: db " ", 0 ; and %al,(%bx,%si) db 0 subroutine_0d9e: push ax push bx _0da0: push cx _0da1: mov cx,ax _0da3: jcxz _0dc8 _0da5: mov ax,[bx+2] _0da8: and ax,0xf _0dab: jz _0dba _0dad: inc cx _0dae: push bx _0daf: mov bx,ax _0db1: mov ax,0x10 _0db4: sub ax,bx _0db6: pop bx _0db7: jmp short _0dbd _0db9: nop _0dba: mov ax,0x10 _0dbd: call subroutine_0cfe _0dc0: add [bx+2],ax _0dc3: mov ax,0x10 _0dc6: loop _0dbd _0dc8: pop cx _0dc9: pop bx _0dca: pop ax _0dcb: ret ; _0dcc: push ax _0dcd: push bx _0dce: push cx _0dcf: mov bx,0x80 _0dd2: call subroutine_2cea _0dd5: jc _0e16 _0dd7: cmp al,0 _0dd9: jz _0de6 _0ddb: cmp al,1 _0ddd: jz _0de9 _0ddf: cmp al,2 _0de1: jz _0df2 _0de3: jmp short _0e16 _0de5: nop _0de6: jmp short _0df5 _0de8: nop _0de9: mov ax,[0x1a] _0dec: mov [0x80],ax _0def: jmp short _0df5 _0df1: nop _0df2: jmp short _0df5 _0df4: nop _0df5: call subroutine_300c _0df8: call subroutine_1118 _0dfb: call subroutine_3376 _0dfe: cmp al,0xd _0e00: jz _0e0d _0e02: mov bx,0x80 _0e05: call subroutine_09ba _0e08: jc _0e16 _0e0a: jmp short _0e19 _0e0c: nop _0e0d: mov bx,0x80 _0e10: call subroutine_0918 _0e13: jmp short _0e19 _0e15: nop _0e16: call subroutine_0e1e _0e19: pop cx _0e1a: pop bx _0e1b: pop ax _0e1c: ret ; _0e1d: db 0 subroutine_0e1e: push bx ; db 0xbb _0e20: daa _0e21: push cs _0e22: call subroutine_2e42_print_cstr _0e25: pop bx _0e26: ret ; ; ; _0e27: db CR db "ERROR" ;0E27: 0D 45 52 52 4F 52 'ERROR' db CR,NULL,NULL ;0E2D: 0D 00 00 ; ; subroutine_0e30: _0e30: pushf _0e31: push cx _0e32: push dx _0e33: mov ah,7 _0e35: call subroutine_0037 _0e38: pop dx _0e39: pop cx _0e3a: popf _0e3b: ret ; subroutine_0e3c: push ax _0e3d: push bx _0e3e: push cx _0e3f: call subroutine_0f74 _0e42: call subroutine_0e30 _0e45: cmp al,0xd _0e47: jz _0eab _0e49: cmp al,8 _0e4b: jz _0e6d _0e4d: cmp al,0x7f _0e4f: jz _0e6d _0e51: cmp al,0x18 _0e53: jz _0e8d _0e55: cmp word [0x86],byte +0x48 _0e5a: jnl _0ea4 _0e5c: mov bx,[0x86] _0e60: mov [bx+0x88],al _0e64: inc word [0x86] _0e68: call subroutine_2e32 _0e6b: jmp short _0e42 _0e6d: cmp word [0x86],byte +0 _0e72: jng _0e42 _0e74: dec word [0x84] _0e78: dec word [0x86] _0e7c: mov al,8 _0e7e: call subroutine_2e32 _0e81: mov al,0x20 _0e83: call subroutine_2e32 _0e86: mov al,8 _0e88: call subroutine_2e32 _0e8b: jmp short _0e42 _0e8d: mov cx,[0x86] _0e91: mov al,8 _0e93: call subroutine_2e32 _0e96: mov al,0x20 _0e98: call subroutine_2e32 _0e9b: mov al,8 _0e9d: call subroutine_2e32 _0ea0: loop _0e91 _0ea2: jmp short _0e3f _0ea4: mov al,7 _0ea6: call subroutine_2e32 _0ea9: jmp short _0e42 _0eab: call subroutine_2e32 _0eae: mov bx,[0x86] _0eb2: mov byte [bx+0x88],0xd _0eb7: inc word [0x86] _0ebb: mov word [0x84],0 _0ec1: pop cx _0ec2: pop bx _0ec3: pop ax _0ec4: ret ; ; _0ec5: db 0 subroutine_0ec6: push ax push bx ; _0ec8: mov bx,[0x13f] _0ecc: mov al,[es:bx+si] _0ecf: mov [bx+0x141],al _0ed3: inc word [0x13f] _0ed7: mov word [0x12c],0xf22 _0edd: cmp al,0xed _0edf: jz _0ef1 _0ee1: cmp al,0xfd _0ee3: jz _0ee8 _0ee5: jmp short _0f13 _0ee7: nop _0ee8: mov word [0x12c],0xf1c _0eee: jmp short _0f13 _0ef0: nop _0ef1: mov word [0x12c],0xf16 _0ef7: mov bx,[0x13f] _0efb: mov al,[es:bx+si] _0efe: mov [bx+0x141],al _0f02: inc word [0x13f] _0f06: mov [0x12e],ax _0f09: mov byte [0x136],2 _0f0e: mov byte [0x14c],1 _0f13: pop bx _0f14: pop ax _0f15: ret ; cstrings_CALLN_RETEM_etc: _0f16: db "CALLN" ,NULL ;0F16: 43 41 4C 4C 4E 'CALLN' _0f1c: db "RETEM" ,NULL ;0F1C: 52 45 54 45 4D 'RETEM' _0f21: db "???" ,NULL ;0F22: 3F 3F 3F '???' ; ; db "PSQ" ;0F26: 50 53 51 'PSQ' ; NB: no null terminator! ; it is code! push ax push bx push cx ; _0f29: mov bx,0xd2 _0f2c: call subroutine_2cea _0f2f: jc _0f6d _0f31: cmp al,0 _0f33: jz _0f40 _0f35: cmp al,1 _0f37: jz _0f43 _0f39: cmp al,2 _0f3b: jz _0f4b _0f3d: jmp short _0f6d _0f3f: nop _0f40: jmp short _0f4e _0f42: nop _0f43: mov ax,[0x1a] _0f46: mov [bx],ax _0f48: jmp short _0f4e _0f4a: nop _0f4b: jmp short _0f4e _0f4d: nop _0f4e: call subroutine_1196 _0f51: jc _0f6d _0f53: mov cx,ax _0f55: call subroutine_11ec _0f58: jc _0f6d _0f5a: jcxz _0f6a _0f5c: push es _0f5d: push di _0f5e: mov es,[0xd2] _0f62: mov di,[0xd4] _0f66: rep stosb _0f68: pop di _0f69: pop es _0f6a: jmp short _0f70 _0f6c: nop _0f6d: call subroutine_0e1e ; _0f70: pop cx _0f71: pop bx _0f72: pop ax _0f73: ret ; subroutine_0f74: mov word [0x86],0 _0f7a: mov word [0x84],0 _0f80: ret ; _0f81: add [bx+si+0x50],ah _0f84: mov al,ah _0f86: and al,0xc0 _0f88: cmp al,0xc0 _0f8a: jnz _0fad _0f8c: mov al,ah _0f8e: and ax,7 _0f91: shl ax,1 _0f93: mov bx,0x10cb _0f96: add bx,ax _0f98: mov bx,[cs:bx] _0f9b: mov [0x130],bx _0f9f: mov word [0x12e],0x10db _0fa5: mov byte [0x14c],2 _0faa: jmp _104c _0fad: mov byte [0xd6],0 _0fb2: mov byte [0x13c],1 _0fb7: mov [0xd7],ah _0fbb: mov word [0x12e],0x10db _0fc1: mov al,ah _0fc3: shr ah,byte 6 _0fc6: and ah,3 _0fc9: jz _0fd2 _0fcb: dec ah _0fcd: jz _1006 _0fcf: jmp short _0fdd _0fd1: nop _0fd2: and al,7 _0fd4: cmp al,6 _0fd6: jnz _101e _0fd8: mov byte [0xd6],1 _0fdd: mov bx,[0x13f] _0fe1: mov al,[es:bx+si] _0fe4: mov [bx+0x141],al _0fe8: mov dl,al _0fea: inc bx _0feb: mov al,[es:bx+si] _0fee: mov [bx+0x141],al _0ff2: add word [0x13f],byte +2 _0ff7: mov ah,al _0ff9: mov al,dl _0ffb: mov [0x134],ax _0ffe: mov byte [0x139],1 _1003: jmp short _101e _1005: nop _1006: mov bx,[0x13f] _100a: mov al,[es:bx+si] _100d: mov [bx+0x141],al _1011: inc word [0x13f] _1015: cbw _1016: mov [0x134],ax _1019: mov byte [0x139],2 _101e: test byte [0xd6],1 _1023: jnz _103c _1025: mov al,[0xd7] _1028: and al,7 _102a: cbw _102b: shl ax,1 _102d: mov bx,0x1073 _1030: add bx,ax _1032: mov bx,[cs:bx] _1035: mov [0x130],bx _1039: jmp short _1047 _103b: nop _103c: mov word [0x130],0x10fb _1042: mov byte [0x139],1 _1047: mov byte [0x14c],2 _104c: pop ax _104d: cmp al,0 _104f: jz _1071 _1051: mov ax,[0x130] _1054: xchg ax,[0x12e] _1058: mov [0x130],ax _105b: mov al,[0x137] _105e: xchg al,[0x136] _1062: mov [0x137],al _1065: cmp byte [0x139],0 _106a: jz _1071 _106c: add byte [0x139],2 _1071: popa _1072: ret ; ; ; jump table on odd boundary: ; DW cstr_1083 DW cstr_108B DW cstr_1093 DW cstr_109B DW cstr_10A3 DW cstr_10A8 DW cstr_10AD DW cstr_10B2 ;107E: 10 AD 10 B2 10 ; cstrings_various: ; cstr_1083: db "[BW+IX]" ,NULL ;1083: 5B 42 57 2B 49 58 5D '[BW+IX]' cstr_108B: db "[BW+IY]" ,NULL ;108B: 5B 42 57 2B 49 59 5D '[BW+IY]' cstr_1093: db "[BP+IX]" ,NULL ;1093: 5B 42 50 2B 49 58 5D '[BP+IX]' cstr_109B: db "[BP+IY]" ,NULL ;109B: 5B 42 50 2B 49 59 5D '[BP+IY]' cstr_10A3: db "[IX]" ,NULL ;10A3: 5B 49 58 5D '[IX]' cstr_10A8: db "[IY]" ,NULL ;10A8: 5B 49 59 5D '[IY]' cstr_10AD: db "[BP]" ,NULL ;10AD: 5B 42 50 5D '[BP]' cstr_10B2: db "[BW]" ,NULL ;10B2: 5B 42 57 5D '[BW]' cstr_10B7: db "BYTE PTR " ,NULL ;10B7: 42 59 54 45 20 50 54 52 20 'BYTE PTR ' cstr_10C1: db "WORD PTR " ,NULL ;10C1: 57 4F 52 44 20 50 54 52 20 'WORD PTR ' ; ; ; DW cstr_10DB DW cstr_10DF DW cstr_10E3 DW cstr_10E7 DW cstr_10EB DW cstr_10EF DW cstr_10F3 DW cstr_10F7 ; ; ; cstr_10DB: db "FR0" ,NULL cstr_10DF: db "FR1" ,NULL cstr_10E3: db "FR2" ,NULL cstr_10E7: db "FR3" ,NULL cstr_10EB: db "FR4" ,NULL cstr_10EF: db "FR5" ,NULL cstr_10F3: db "FR6" ,NULL cstr_10F7: db "FR7" ,NULL _10fb: db NULL ;10FB: 00 subroutine_10fc: push bx _10fd: call subroutine_0e30 _1100: call subroutine_318c _1103: jc _1115 _1105: shl ax,byte 4 _1108: mov bl,al _110a: call subroutine_0e30 _110d: call subroutine_318c _1110: jc _1115 _1112: add al,bl _1114: clc _1115: pop bx _1116: ret ; _1117: db 0 subroutine_1118: push bx ;1118: 53 _1119: mov bx,[0x0086] ;1119: 8B 1E 86 00 ;_111a: push ds ;_111b: xchg al,[bx+si] _111d: cmp bx,[0x84] _1121: jnz _1126 _1123: call subroutine_0e3c _1126: mov bx,[0x84] _112a: mov al,[bx+0x88] _112e: inc word [0x84] _1132: pop bx _1133: ret ; subroutine_1134: call subroutine_300c _1137: call subroutine_1118 _113a: call subroutine_31a4 _113d: cmp al,0xd _113f: jz _114e _1141: cmp al,0x41 _1143: jl _1153 _1145: cmp al,0x5a _1147: jg _1153 _1149: mov ah,0 _114b: jmp short _1155 _114d: nop _114e: mov ah,1 _1150: jmp short _1155 _1152: nop _1153: mov ah,2 _1155: ret ; subroutine_1156: push bx _1157: push cx _1158: push dx _1159: call subroutine_300c _115c: mov cx,0xa _115f: mov ax,0 _1162: push ax _1163: call subroutine_1118 _1166: cmp al,0x20 _1168: jz _118c _116a: cmp al,9 _116c: jz _118c _116e: cmp al,0xd _1170: jz _118c _1172: call subroutine_1530 _1175: jnc _1188 _1177: sub al,0x30 _1179: mov ah,0 _117b: mov bx,ax _117d: pop ax _117e: mul cx _1180: jo _1187 _1182: add ax,bx _1184: push ax _1185: jmp short _1163 _1187: push ax _1188: stc _1189: jmp short _1190 _118b: nop _118c: call subroutine_3376 _118f: clc _1190: pop ax _1191: pop dx _1192: pop cx _1193: pop bx _1194: ret ; ; db 0 subroutine_1196: push ax push bx _1198: push dx _1199: call subroutine_300c _119c: mov ax,0 _119f: push ax _11a0: call subroutine_1118 _11a3: cmp al,0x3a _11a5: jz _11e3 _11a7: cmp al,0x20 _11a9: jz _11e3 _11ab: cmp al,9 _11ad: jz _11e3 _11af: cmp al,0xd _11b1: jz _11e3 _11b3: call subroutine_31a4 _11b6: call subroutine_1514 _11b9: jnc _11df _11bb: call subroutine_1530 _11be: jc _11c2 _11c0: sub al,7 _11c2: sub al,0x30 _11c4: mov ah,0 _11c6: mov bx,ax _11c8: pop ax _11c9: shl ax,1 _11cb: jc _11de _11cd: shl ax,1 _11cf: jc _11de _11d1: shl ax,1 _11d3: jc _11de _11d5: shl ax,1 _11d7: jc _11de _11d9: add ax,bx _11db: push ax _11dc: jmp short _11a0 _11de: push ax _11df: stc _11e0: jmp short _11e7 _11e2: nop _11e3: call subroutine_3376 _11e6: clc _11e7: pop ax _11e8: pop dx _11e9: pop cx _11ea: pop bx _11eb: ret ; subroutine_11ec: call subroutine_1196 _11ef: jc _11fa _11f1: cmp ax,0xff _11f4: jg _11fa _11f6: clc _11f7: jmp short _11fb _11f9: nop _11fa: stc _11fb: ret ; subroutine_11fc: push bx _11fd: call subroutine_10fc _1200: jc _120b _1202: mov bh,al _1204: call subroutine_10fc _1207: jc _120b _1209: mov ah,bh _120b: pop bx _120c: ret ; _120d: add [bx+si+0x53],dl _1210: push cx _1211: call subroutine_1118 _1214: call subroutine_3376 _1217: cmp al,0x3d _1219: jnz _1226 _121b: call subroutine_1118 _121e: call subroutine_1196 _1221: jc _126a _1223: mov [0x24],ax _1226: mov word [0xd8],0 _122c: call subroutine_300c _122f: call subroutine_1118 _1232: call subroutine_3376 _1235: cmp al,0xd _1237: jz _1257 _1239: call subroutine_1196 _123c: jc _126a _123e: mov bx,[0xd8] _1242: shl bx,1 _1244: add bx,0xda _1248: mov [bx],ax _124a: inc word [0xd8] _124e: cmp word [0xd8],byte +0xa _1253: jg _126a _1255: jmp short _122c _1257: call subroutine_3022 _125a: call subroutine_2f30 _125d: pushf _125e: call subroutine_0544 _1261: popf _1262: jnc _126d _1264: call subroutine_0808 _1267: jmp short _126d _1269: nop _126a: call subroutine_0e1e _126d: pop cx _126e: pop bx _126f: pop ax _1270: ret ; _L1271: db 0, 0xf subroutine_1272: pusha _1274: sbb al,al _1276: add [di+0xd],dh _1279: mov cx,1 _127c: mov dl,2 _127e: mov byte [0xf9],2 _1283: jmp short _1290 _1285: nop _1286: mov cx,2 _1289: mov dl,3 _128b: mov byte [0xf9],1 _1290: mov bx,[0x13f] _1294: mov al,[es:bx+si] _1297: mov [bx+0x141],al _129b: inc word [0x13f] _129f: mov dh,al _12a1: shr al,byte 3 _12a4: and al,7 _12a6: mov [0xf8],al _12a9: cbw _12aa: shl ax,1 _12ac: mov bx,0x1311 _12af: add bx,ax _12b1: mov bx,[cs:bx] _12b4: mov [0x12c],bx _12b8: mov ax,dx _12ba: call subroutine_09f6 _12bd: mov ax,[0x130] _12c0: mov [0x12e],ax _12c3: mov al,[0x137] _12c6: mov [0x136],al _12c9: cmp byte [0x139],0 _12ce: jz _12d5 _12d0: add byte [0x139],2 _12d5: mov byte [0x14c],1 _12da: cmp byte [0xf8],0 _12df: jnz _130f _12e1: mov bx,[0x13f] _12e5: mov al,[es:bx+si] _12e8: mov [bx+0x141],al _12ec: push bx _12ed: sub bx,[0x13f] _12f1: add bx,0x130 _12f5: mov [bx],al _12f7: pop bx _12f8: inc bx _12f9: loop _12e5 _12fb: mov [0x13f],bx _12ff: mov al,[0xf9] _1302: mov [0x137],al _1305: mov byte [0x13d],1 _130a: mov byte [0x14c],2 _130f: popa _1310: ret ; ; ; ; DW cstr_1321 DW cstr_1326 DW cstr_132A DW cstr_132E DW cstr_1332 DW cstr_1337 DW cstr_133B DW cstr_1340 ; cstrings_TEST_NOT_NEG_etc: ; cstr_1321: db "TEST" ,NULL ;1321: 54 45 53 54 'TEST' cstr_1326: db "???" ,NULL ;1326: 3F 3F 3F '???' cstr_132A: db "NOT" ,NULL ;132A: 4E 4F 54 'NOT' cstr_132E: db "NEG" ,NULL ;132E: 4E 45 47 'NEG' cstr_1332: db "MULU" ,NULL ;1332: 4D 55 4C 55 'MULU' cstr_1337: db "MUL" ,NULL ;1337: 4D 55 4C 'MUL' cstr_133B: db "DIVU" ,NULL ;133B: 44 49 56 55 'DIVU' cstr_1340: db "DIV" ,NULL ;1340: 44 49 56 'DIV' ; L1343: ;;; add ah,0xf,[bx+si] db 0 subroutine_1344: pusha _1346: sbb al,al _1348: add [di+5],dh _134b: mov dl,2 _134d: jmp short _1352 _134f: nop _1350: mov dl,3 _1352: mov bx,[0x13f] _1356: mov al,[es:bx+si] _1359: mov [bx+0x141],al _135d: inc word [0x13f] _1361: mov dh,al _1363: shr al,byte 3 _1366: and al,7 _1368: cbw _1369: shl ax,1 _136b: mov bx,0x139b _136e: add bx,ax _1370: mov bx,[cs:bx] _1373: mov [0x12c],bx _1377: mov ax,dx _1379: call subroutine_09f6 _137c: mov ax,[0x130] _137f: mov [0x12e],ax _1382: mov al,[0x137] _1385: mov [0x136],al _1388: cmp byte [0x139],0 _138d: jz _1394 _138f: add byte [0x139],2 _1394: mov byte [0x14c],1 _1399: popa _139a: ret ; ; ; ; DW cstr_13ab DW cstr_13af DW cstr_13b3 DW cstr_13b3 DW cstr_13b8 DW cstr_13b8 ; twice! DW cstr_13bb DW cstr_13c0 ; cstrings_INC_DEC_CALL_BR_PUSH_etc: cstr_13ab: db "INC" ,NULL ;13AB: 49 4E 43 'INC' cstr_13af: db "DEC" ,NULL ;13AF: 44 45 43 'DEC' cstr_13b3: db "CALL" ,NULL ;13B3: 43 41 4C 4C 'CALL' cstr_13b8: db "BR" ,NULL ;13B8: 42 52 'BR' cstr_13bb: db "PUSH" ,NULL ;13BB: 50 55 53 48 'PUSH' cstr_13c0: db "???" ,NULL ;13C0: 3F 3F 3F '???' ;;; _13c3: db 0 subroutine_13c4: _13c4: pusha _13c5: mov byte [0xfa],0 _13ca: mov byte [0xfc],1 _13cf: mov ah,al _13d1: cmp al,0xc6 _13d3: jz _1404 _13d5: cmp al,0xc7 _13d7: jz _1411 _13d9: mov byte [0xfc],0 _13de: mov ah,2 _13e0: cmp al,0x80 _13e2: jz _1404 _13e4: mov ah,3 _13e6: cmp al,0x81 _13e8: jz _1411 _13ea: mov ah,2 _13ec: cmp al,0x82 _13ee: jz _1404 _13f0: mov ah,2 _13f2: mov cx,1 _13f5: mov dl,ah _13f7: mov byte [0xfa],1 _13fc: mov byte [0xfb],1 _1401: jmp short _141b _1403: nop _1404: mov cx,1 _1407: mov dl,ah _1409: mov byte [0xfb],2 _140e: jmp short _141b _1410: nop _1411: mov cx,2 _1414: mov dl,ah _1416: mov byte [0xfb],1 _141b: mov bx,[0x13f] _141f: mov al,[es:bx+si] _1422: mov [bx+0x141],al _1426: inc word [0x13f] _142a: mov dh,al _142c: test byte [0xfc],1 _1431: jnz _1447 _1433: shr al,byte 3 _1436: and al,7 _1438: cbw _1439: shl ax,1 _143b: mov bx,0x14a2 _143e: add bx,ax _1440: mov bx,[cs:bx] _1443: mov [0x12c],bx _1447: mov ax,dx _1449: call subroutine_09f6 _144c: mov ax,[0x130] _144f: mov [0x12e],ax _1452: mov al,[0x137] _1455: mov [0x136],al _1458: cmp byte [0x139],0 _145d: jz _1464 _145f: add byte [0x139],2 _1464: mov bx,[0x13f] _1468: mov al,[es:bx+si] _146b: mov [bx+0x141],al _146f: push bx _1470: sub bx,[0x13f] _1474: add bx,0x130 _1478: mov [bx],al _147a: pop bx _147b: inc bx _147c: loop _1468 _147e: mov [0x13f],bx _1482: test byte [0xfa],1 _1487: jz _1490 _1489: mov ax,[0x130] _148c: cbw _148d: mov [0x130],ax _1490: mov al,[0xfb] _1493: mov [0x137],al _1496: mov byte [0x13d],1 _149b: mov byte [0x14c],2 _14a0: popa _14a1: ret ; _14a2: mov dl,0x14 _14a4: mov dh,0x14 _14a6: mov cx,0xbd14 _14a9: adc al,0xc1 _14ab: adc al,0xc5 _14ad: adc al,0xc9 _14af: adc al,0xcd _14b1: adc al,0x41 _14b3: inc sp _14b4: inc sp _14b5: add [bx+0x52],cl _14b8: add [bx+di+0x44],al _14bb: inc bx _14bc: add [bp+di+0x42],dl _14bf: inc dx _14c0: add [bx+di+0x4e],al _14c3: inc sp _14c4: add [bp+di+0x55],dl _14c7: inc dx _14c8: add [bx+si+0x4f],bl _14cb: push dx _14cc: add [bp+di+0x4d],al _14cf: push ax _14d0: add [bx+si],al _14d2: push ax _14d3: push dx _14d4: call subroutine_1196 _14d7: jc _14f4 _14d9: mov dx,ax _14db: in al,dx _14dc: push ax _14dd: mov ax,dx _14df: call subroutine_2cde _14e2: mov bx,0x14fa _14e5: call subroutine_2e42_print_cstr _14e8: pop ax _14e9: call subroutine_2cd2 _14ec: mov al,0xd _14ee: call subroutine_2e32 _14f1: jmp short _14f7 _14f3: nop _14f4: call subroutine_0e1e _14f7: pop dx _14f8: pop ax _14f9: ret ; _14fa: and [di],ch _14fc: and [bx+si],al _14fe: ret ; db 0 ; subroutine_1500: push ax _1501: call subroutine_31a3 _1504: cmp al, 0x41 _1506: jl _1510 _1508: cmp al,0x5a _150a: jg _1510 _150c: stc _150d: jmp short _1511 _150f: nop _1510: clc _1511: pop ax _1512: ret ; ; db 0 subroutine_1514: _1514 push ax ; E8 8C 1C call cstr_1c8c_ANA ; this is data string! _1518: cmp al,0x30 _151a: jl _152c _151c: cmp al,0x39 _151e: jng _1528 _1520: cmp al,0x41 _1522: jl _152c _1524: cmp al,0x46 _1526: jg _152c _1528: stc _1529: jmp short _152d _152b: nop _152c: clc _152d: pop ax _152e: ret ; ; L152f: db 0 subroutine_1530: L1530: db $3c, $30, $7c, $08 ;;; _152f: add [si],bh; ;;; _1531: xor [si+8],bh _1534: cmp al,0x39 _1536: jg _153c _1538: stc _1539: jmp short _153d _153b: nop _153c: clc _153d: ret ; subroutine_153e: push bx _153f: push cx _1540: push di _1541: call subroutine_300c _1544: call subroutine_1118 _1547: push ax _1548: call subroutine_31a4 _154b: mov bh,al _154d: call subroutine_1118 _1550: push ax _1551: call subroutine_31a4 _1554: mov bl,al _1556: pop ax _1557: call subroutine_3376 _155a: pop ax _155b: call subroutine_3376 _155e: mov ax,bx _1560: mov di,0x15b2 _1563: mov cx,0xe _1566: nop _1567: push es _1568: push cs _1569: pop es _156a: repne scasw _156c: pop es _156d: jcxz _15ac _156f: push ax _1570: call subroutine_1118 _1573: call subroutine_1118 _1576: pop ax _1577: cmp ax,0x4453 _157a: jnz _1597 _157c: call subroutine_1118 _157f: cmp al,0x30 _1581: jz _1597 _1583: cmp al,0x31 _1585: jz _1599 _1587: call subroutine_3376 _158a: mov al,0x53 _158c: call subroutine_3376 _158f: mov al,0x44 _1591: call subroutine_3376 _1594: jmp short _15ac _1596: nop _1597: dec di _1598: dec di _1599: sub di,0x15b2 _159d: mov bx,di _159f: add bx,0x15ce _15a3: mov bx,[cs:bx] _15a6: mov ax,[bx] _15a8: stc _15a9: jmp short _15ad _15ab: nop _15ac: clc _15ad: pop di _15ae: pop cx _15af: pop bx _15b0: ret ; _15b1: nop _15b2: push di _15b3: inc cx _15b4: push di _15b5: inc dx _15b6: push di _15b7: inc bx _15b8: push di _15b9: inc sp _15ba: push ax _15bb: push bx _15bc: push ax _15bd: inc dx _15be: pop ax _15bf: dec cx _15c0: pop cx _15c1: dec cx _15c2: push bx _15c3: push bx _15c4: push bx _15c5: push ax _15c6: push bx _15c7: inc sp _15c8: push bx _15c9: inc sp _15ca: inc bx _15cb: push ax _15cc: add [bx+si],al _15ce: or al,[bx+si] _15d0: or al,0 _15d2: push cs _15d3: add [bx+si],dl _15d5: add [bx+si],bl _15d7: add [0x1200],dl _15db: add [si],dl _15dd: add [0x2000],bl _15e1: add [bp+si],bl _15e3: add [si],bl _15e5: add [si],ah _15e7: add [bx+si+0x53],dl _15ea: push cx _15eb: push dx _15ec: mov bx,0x1713 _15ef: call subroutine_2e42_print_cstr _15f2: push es _15f3: mov ax,0 _15f6: mov es,ax _15f8: mov dl,0 _15fa: mov ah,0 _15fc: call subroutine_0e30 _15ff: cmp al,0x3a _1601: jnz _15fa _1603: call subroutine_10fc _1606: mov dh,1 _1608: jc _1664 _160a: mov ah,0 _160c: mov cx,ax _160e: add dl,cl _1610: call subroutine_11fc _1613: mov dh,2 _1615: jc _1664 subroutine_1616 equ $1616 _1617: mov bx,ax _1619: add dl,bl _161b: add dl,bh _161d: call subroutine_10fc _1620: mov dh,3 _1622: jc _1664 _1624: add dl,al _1626: mov dh,4 _1628: cmp al,0 _162a: jnz _1632 _162c: call subroutine_099c _162f: jmp short _165d _1631: nop _1632: cmp al,1 _1634: jnz _1647 _1636: call subroutine_098c _1639: mov dh,0 _163b: jc _1664 _163d: pop es _163e: mov bx,0x1783 _1641: call subroutine_2e42_print_cstr _1644: jmp short _1679 _1646: nop _1647: cmp al,2 _1649: jnz _1653 _164b: call subroutine_0bdc _164e: jc _1664 _1650: jmp short _165d _1652: nop _1653: cmp al,3 _1655: jnz _1664 _1657: call subroutine_0bfc _165a: jmp short _165d _165c: nop _165d: mov al,0x2e _165f: call subroutine_2e32 _1662: jmp short _15f8 _1664: mov dl,dh _1666: mov dh,0 _1668: shl dx,1 _166a: mov bx,0x167e _166d: add bx,dx _166f: pop es _1670: mov bx,[cs:bx] _1673: call subroutine_2e42_print_cstr _1676: jmp short _1679 _1678: nop _1679: pop dx _167a: pop cx _167b: pop bx _167c: pop ax _167d: ret ; ; ; ; db $88,$16 db $99,$16 db $0AE,$16 db $0C4,$16 db $0D7,$16 cstrings_audible_error_messages: ; db BELL db "Checksum Error" db CR,NULL db BELL db "Length Field Error" db CR,NULL db BELL db "Address Field Error" db CR,NULL db BELL db "Type Field Error" db CR,NULL db BELL db "Illegal Type Error" db CR,NULL db BELL db "Address Read Error" db CR,NULL db BELL db "Data Read Error" db CR,NULL db "Please use your terminal emulator to transmit" db CR db "your HEX file. A dot will be printed as each" db CR db "record is processed." db NULL db CR db "Download complete - No errors." db CR,NULL ; ; ; Looks like a huge jump table. ; _17a4: dw subroutine_2b96,cstr_1ba5_NOP dw subroutine_3566,cstr_1c42_LXI dw subroutine_2b96,cstr_1c46_STAX_B _17b0: dw subroutine_2b96,cstr_1d35_INX dw subroutine_2b96,cstr_1ce1_INR_B dw subroutine_2b96,cstr_1ce7_DCR_B dw subroutine_04f0,cstr_1c74_MVI _17c0: dw subroutine_2b96,cstr_1d66_RLC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cbc_DAD_B dw subroutine_2b96,cstr_1c4d_LDAX_B _17d0: dw subroutine_2b96,cstr_1d3a_DCX_B dw subroutine_2b96,cstr_1ced dw subroutine_2b96,cstr_1cf3 dw subroutine_04f0,cstr_1c74_MVI _17e0: dw subroutine_2b96,cstr_1d6a_RRC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_3566,cstr_1c42_LXI dw subroutine_2b96,cstr_1c54_STAX_D _17f0: dw subroutine_2b96,cstr_1d40_INX_D dw subroutine_2b96,cstr_1cf9 dw subroutine_2b96,cstr_1cff dw subroutine_04f0,cstr_1c74_MVI _1800: dw subroutine_2b96,cstr_1d6e_RAL dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cc2_DAD_D dw subroutine_2b96,cstr_1c5b_LDAX_D _1810: dw subroutine_2b96,cstr_1d46_DCX_D dw subroutine_2b96,cstr_1d05 dw subroutine_2b96,cstr_1d0b dw subroutine_04f0,cstr_1c74_MVI _1820: dw subroutine_2b96,cstr_1d72_RAR dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_3566,cstr_1c42_LXI dw subroutine_353c,cstr_1c62_SHLD _1830: dw subroutine_2b96,cstr_1d4c_INX_H dw subroutine_2b96,cstr_1d11 dw subroutine_2b96,cstr_1d17 dw subroutine_04f0,cstr_1c74_MVI _1840: dw subroutine_2b96,cstr_1d76_DAA dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cc8_DAD_H dw subroutine_353c,cstr_1c67_LDHL _1850: dw subroutine_2b96,cstr_1d52_DCX_H dw subroutine_2b96,cstr_1d1d dw subroutine_2b96,cstr_1d23 dw subroutine_04f0,cstr_1c74_MVI _1860: dw subroutine_2b96,cstr_1bad_CMA dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_3566,cstr_1c42_LXI dw subroutine_353c,cstr_1c6c_STA _1870: dw subroutine_2b96,cstr_1d58_INX_SP dw subroutine_2b96,cstr_1d29 dw subroutine_2b96,cstr_1d2f dw subroutine_04f0,cstr_1c74_MVI _1880: dw subroutine_2b96,cstr_1ba9_STC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_2b96,cstr_1cce_DAD_SP dw subroutine_353c,cstr_1c70_LDA _1890: dw subroutine_2b96,cstr_1d5f_DCX_SP dw subroutine_2b96,cstr_1cd5_INR_A dw subroutine_2b96,cstr_1cdb_DCR_A dw subroutine_04f0,cstr_1c74_MVI _18a0: dw subroutine_2b96,cstr_1bb5_CMC ; dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18b0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18c0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18d0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18e0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _18f0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1900: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1910: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1920: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1930: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1940: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1950: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1960: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1970: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2b96,cstr_1bb1_HLT ; _1980: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV _1990: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2ee0,cstr_1c78_MOV ; _19a0: dw subroutine_2ee0,cstr_1c78_MOV dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD _19b0: dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD dw subroutine_2c56,cstr_1c7c_ADD _19c0: dw subroutine_2c56,cstr_1c7c_ADD ; dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC _19d0: dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC dw subroutine_2c56,cstr_1c84_ADC _19e0: dw subroutine_2c56,cstr_1c84_ADC ; dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB _19f0: dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB dw subroutine_2c56,cstr_1c80_SUB _1a00: dw subroutine_2c56,cstr_1c80_SUB ; dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB _1a10: dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB dw subroutine_2c56,cstr_1c88_SBB _1a20: dw subroutine_2c56,cstr_1c88_SBB ; dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA _1a30: dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA dw subroutine_2c56,cstr_1c8c_ANA _1a40: dw subroutine_2c56,cstr_1c8c_ANA ; dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA _1a50: dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA dw subroutine_2c56,cstr_1c90_XRA _1a60: dw subroutine_2c56,cstr_1c90_XRA ; dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA _1a70: dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA dw subroutine_2c56,cstr_1c94_ORA _1a80: dw subroutine_2c56,cstr_1c94_ORA ; dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP _1a90: dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP dw subroutine_2c56,cstr_1c98_CMP _1aa0: dw subroutine_2c56,cstr_1c98_CMP ; dw subroutine_2b96,cstr_1dc9 dw subroutine_2b96,cstr_1c1b_POP_B dw subroutine_353c,cstr_1da9 _1ab0: dw subroutine_353c,cstr_1d9b_JMP dw subroutine_353c,cstr_1d89 dw subroutine_2b96,cstr_1c21_PUSH_B dw subroutine_04ce,cstr_1c9c_ADI _1ac0: dw subroutine_2b96,cstr_1bda_RST_0 dw subroutine_2b96,cstr_1dc6 dw subroutine_2b96,cstr_1dbb_RET dw subroutine_353c,cstr_1da6 _1ad0: dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_353c,cstr_1d86 dw subroutine_353c,cstr_1d7a_CALL dw subroutine_04ce,cstr_1ca4_ACI _1ae0: dw subroutine_2b96,cstr_1be0_RST_1 dw subroutine_2b96,cstr_1dc2 dw subroutine_2b96,cstr_1c28_POP_D dw subroutine_353c,cstr_1da2 _1af0: dw subroutine_04ce,cstr_1bd6_OUT dw subroutine_353c,cstr_1d82_CNC dw subroutine_2b96,cstr_1c2e_PUSH_D dw subroutine_04ce,cstr_1ca0_SUI _1b00: dw subroutine_2b96,cstr_1be6_RST_2 dw subroutine_2b96,cstr_1dbf dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_353c,cstr_1d9f _1b10: dw subroutine_04ce,cstr_1bd3_IN dw subroutine_353c,cstr_1d7f_CC dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_04ce,cstr_1ca8_SBI _1b20: dw subroutine_2b96,cstr_1bec_RST_3 dw subroutine_2b96,cstr_1dd7 dw subroutine_2b96,cstr_1c35_POP_H dw subroutine_353c,cstr_1db7 _1b30: dw subroutine_2b96,cstr_1bb9_XTHL dw subroutine_353c,cstr_1d97 dw subroutine_2b96,cstr_1c3b_PUSH_H dw subroutine_04ce,cstr_1cac_ANI _1b40: dw subroutine_2b96,cstr_1bf2_RST_4 dw subroutine_2b96,cstr_1dd3 dw subroutine_2b96,cstr_1bbe_PCHL dw subroutine_353c,cstr_1db3 _1b50: dw subroutine_2b96,cstr_1bc3_XCHG dw subroutine_353c,cstr_1d93 dw subroutine_0ec6,cstr_1ba4_null_string dw subroutine_04ce,cstr_1cb0_XR _1b60: dw subroutine_2b96,cstr_1bf8_RST_5 dw subroutine_2b96,cstr_1dcd dw subroutine_2b96,cstr_1c0a_POP_PSW dw subroutine_353c,cstr_1dad _1b70: dw subroutine_2b96,cstr_1bd0_DI dw subroutine_353c,cstr_1d8d dw subroutine_2b96,cstr_1c12_PUSH_PSW dw subroutine_04ce,cstr_1cb4_ORI _L1b80: dw subroutine_2b96,cstr_1bfe_RST_6 dw subroutine_2b96,cstr_1dd0 dw subroutine_2b96,cstr_1bc8_SPHL dw subroutine_353c,cstr_1db0 _1b90: dw subroutine_2b96,cstr_1bcd_EI dw subroutine_353c,cstr_1d90 dw subroutine_0ca0,cstr_1ba4_null_string dw subroutine_04ce,cstr_1cb8_CPI _1ba0: dw subroutine_2b96,cstr_1c04_RST_7 cstr_1ba4_null_string: db 0 ; empty string cstr_1ba5_NOP: db "NOP",0 cstr_1ba9_STC: db "STC",0 cstr_1bad_CMA: db "CMA",0 cstr_1bb1_HLT: db "HLT",0 cstr_1bb5_CMC: db "CMC",0 cstr_1bb9_XTHL: db "XTHL",0 cstr_1bbe_PCHL: db "PCHL",0 cstr_1bc3_XCHG: db "XCHG",0 cstr_1bc8_SPHL: db "SPHL",0 cstr_1bcd_EI: db "EI",0 cstr_1bd0_DI: db "DI",0 cstr_1bd3_IN: db "IN",0 cstr_1bd6_OUT: db "OUT",0 ; ; ; cstr_1bda_RST_0: db "RST" db TAB db "0" db NULL ;1BDE: 30 '0' cstr_1be0_RST_1: db "RST" db TAB db "1" db NULL ;1BE4: 31 '1' cstr_1be6_RST_2: db "RST" db TAB db "2" db NULL cstr_1bec_RST_3: db "RST" db TAB db "3" ,NULL ;1BF0: 33 '3' cstr_1bf2_RST_4: db "RST" db TAB db "4" db NULL ;1BF6: 34 '4' cstr_1bf8_RST_5: db "RST" db TAB db "5" db NULL ;1BFC: 35 '5' cstr_1bfe_RST_6: db "RST" db TAB db "6" ,NULL ;1C02: 36 '6' cstr_1c04_RST_7: db "RST" db TAB db "7" db NULL ;1C08: 37 '7' cstr_1c0a_POP_PSW db "POP" db TAB db "PSW" ,NULL ;1C0E: 50 53 57 'PSW' cstr_1c12_PUSH_PSW: db "PUSH" db TAB db "PSW" db NULL ;1C17: 50 53 57 'PSW' cstr_1c1b_POP_B: db "POP" db TAB db "B" db NULL ;1C1F: 42 'B' cstr_1c21_PUSH_B: db "PUSH" db TAB db "B" db NULL ;1C26: 42 'B' cstr_1c28_POP_D: db "POP" db TAB db "D" db NULL ;1C2D: 00 cstr_1c2e_PUSH_D: db "PUSH" db TAB db "D" db NULL ;1C34: 00 cstr_1c35_POP_H: db "POP" db TAB db "H" db NULL ;1C3A: 00 cstr_1c3b_PUSH_H: db "PUSH" db TAB db "H" db NULL ;1C41: 00 cstr_1c42_LXI: db "LXI",0 ;1C42: 4C 58 49 'LXI' cstr_1c46_STAX_B: db "STAX" db TAB db "B" db NULL ;1C4C: 00 cstr_1c4d_LDAX_B: db "LDAX" db TAB db "B" db NULL cstr_1c54_STAX_D: db "STAX" db TAB db "D" db NULL ;1C5A: 00 cstr_1c5b_LDAX_D: db "LDAX" db TAB db "D" db NULL ;1C60: 44 'D' ; ; ; cstr_1c62_SHLD: db "SHLD" ,0 ;1C62: cstr_1c67_LDHL: db "LDHL" ,0 ;1C67: cstr_1c6c_STA: db "STA" ,0 ;1C6C: cstr_1c70_LDA: db "LDA" ,0 ;1C70: cstr_1c74_MVI: db "MVI" ,0 ;1C74: cstr_1c78_MOV: db "MOV" ,0 ;1C78: cstr_1c7c_ADD: db "ADD" ,0 ;1C7C: cstr_1c80_SUB: db "SUB" ,0 ;1C80: cstr_1c84_ADC: db "ADC" ,0 ;1C84: cstr_1c88_SBB: db "SBB" ,0 ;1C88: cstr_1c8c_ANA: db "ANA" ,0 ;1C8C: cstr_1c90_XRA: db "XRA" ,0 ;1C90: cstr_1c94_ORA: db "ORA" ,0 ;1C94: cstr_1c98_CMP: db "CMP" ,0 ;1C98: cstr_1c9c_ADI: db "ADI" ,0 ;1C9C: cstr_1ca0_SUI: db "SUI" ,0 ;1CA0: cstr_1ca4_ACI: db "ACI" ,0 ;1CA4: cstr_1ca8_SBI: db "SBI" ,0 ;1CA8: cstr_1cac_ANI: db "ANI" ,0 ;1CAC: cstr_1cb0_XR: db "XRI" ,0 ;1CB0: cstr_1cb4_ORI: db "ORI" ,0 ;1CB4: cstr_1cb8_CPI: db "CPI" ,0 ;1CB8: ; ; ; cstr_1cbc_DAD_B: db "DAD" db TAB db "B" db NULL cstr_1cc2_DAD_D: db "DAD" db TAB db "D" db NULL cstr_1cc8_DAD_H: db "DAD" db TAB db "H" db NULL cstr_1cce_DAD_SP: db "DAD" db TAB db "SP" db NULL cstr_1cd5_INR_A: db "INR" db TAB db "A" db NULL cstr_1cdb_DCR_A: db "DCR" db TAB db "A" db NULL cstr_1ce1_INR_B: db "INR" db TAB db "B" db NULL cstr_1ce7_DCR_B: db "DCR" db TAB db "B" db NULL cstr_1ced: db "INR" db TAB db "C" db NULL cstr_1cf3: db "DCR" db TAB db "C" db NULL cstr_1cf9: db "INR" db TAB db "D" db NULL cstr_1cff: db "DCR" db TAB db "D" db NULL cstr_1d05: db "INR" db TAB db "E" db NULL cstr_1d0b: db "DCR" db TAB db "E" db NULL cstr_1d11: db "INR" db TAB db "H" db NULL cstr_1d17: db "DCR" db TAB db "H" db NULL cstr_1d1d: db "INR" db TAB db "L" db NULL cstr_1d23: db "DCR" db TAB db "L" db NULL cstr_1d29: db "INR" db TAB db "M" db NULL cstr_1d2f: db "DCR" db TAB db "M" db NULL cstr_1d35_INX: db "INX" db TAB db NULL cstr_1d3a_DCX_B: db "DCX" db TAB db "B" db NULL cstr_1d40_INX_D: db "INX" db TAB db "D" db NULL cstr_1d46_DCX_D: db "DCX" db TAB db "D" db NULL cstr_1d4c_INX_H: db "INX" db TAB db "H" db NULL cstr_1d52_DCX_H: db "DCX" db TAB db "H" db NULL cstr_1d58_INX_SP: db "INX" db TAB db "SP" db NULL cstr_1d5f_DCX_SP: db "DCX" db TAB db "SP" db NULL ; ; ; ; cstr_1d66_RLC: db "RLC",0 cstr_1d6a_RRC: db "RRC",0 cstr_1d6e_RAL: db "RAL",0 cstr_1d72_RAR: db "RAR",0 cstr_1d76_DAA: db "DAA",0 cstr_1d7a_CALL: db "CALL",0 cstr_1d7f_CC: db "CC",0 cstr_1d82_CNC: db "CNC",0 cstr_1d86: db "CZ",0 cstr_1d89: db "CNZ",0 cstr_1d8d: db "CP",0 cstr_1d90: db "CM",0 cstr_1d93: db "CPE",0 cstr_1d97: db "CPO",0 cstr_1d9b_JMP: db "JMP",0 cstr_1d9f: db "JC",0 cstr_1da2: db "JNC",0 cstr_1da6: db "JZ",0 cstr_1da9: db "JNZ",0 cstr_1dad: db "JP",0 cstr_1db0: db "JM",0 cstr_1db3: db "JPE",0 cstr_1db7: db "JPO",0 cstr_1dbb_RET: db "RET",0 cstr_1dbf: db "RC",0 cstr_1dc2: db "RNC",0 cstr_1dc6: db "RZ",0 cstr_1dc9: db "RNZ",0 cstr_1dcd: db "RP",0 cstr_1dd0: db "RM",0 cstr_1dd3: db "RPE",0 cstr_1dd7: db "RPO",0 db NULL ; end of table ; ; ; _1ddC: DW subroutine_31fc,cstr_23be _1de0: DW subroutine_31fc,cstr_23be DW subroutine_31fc,cstr_23be DW subroutine_31fc,cstr_23be DW subroutine_030a,cstr_23be _1df0: DW subroutine_030a,cstr_23be DW subroutine_4390,cstr_21e1 DW subroutine_4390,cstr_21e6 DW subroutine_31fc,cstr_23ce _1e00: DW subroutine_31fc,cstr_23ce DW subroutine_31fc,cstr_23ce DW subroutine_31fc,cstr_23ce DW subroutine_030a,cstr_23ce _1e10: DW subroutine_030a,cstr_23ce DW subroutine_4390,cstr_21e1 DW subroutine_338c,cstr_21e0 DW subroutine_31fc,cstr_23c2 _1e20: DW subroutine_31fc,cstr_23c2 DW subroutine_31fc,cstr_23c2 DW subroutine_31fc,cstr_23c2 DW subroutine_030a,cstr_23c2 _1e30: DW subroutine_030a,cstr_23c2 DW subroutine_4390,cstr_21e1 DW subroutine_4390,cstr_21e6 DW subroutine_31fc,cstr_23d1 _1e40: DW subroutine_31fc,cstr_23d1 DW subroutine_31fc,cstr_23d1 DW subroutine_31fc,cstr_23d1 DW subroutine_030a,cstr_23d1 _1e50: DW subroutine_030a,cstr_23d1 DW subroutine_4390,cstr_21e1 DW subroutine_4390,cstr_21e6 DW subroutine_31fc,cstr_23c6 _1e60: DW subroutine_31fc,cstr_23c6 DW subroutine_31fc,cstr_23c6 DW subroutine_31fc,cstr_23c6 DW subroutine_030a,cstr_23c6 _1e70: DW subroutine_030a,cstr_23c6 dw subroutine_2e20,cstr_2323 dw subroutine_2b98,cstr_22fe DW subroutine_31fc,cstr_23d5 _1e80: DW subroutine_31fc,cstr_23d5 DW subroutine_31fc,cstr_23d5 DW subroutine_31fc,cstr_23d5 DW subroutine_030a,cstr_23d5 _1e90: DW subroutine_030a,cstr_23d5 dw subroutine_2e20,cstr_232c dw subroutine_2b98,cstr_230a DW subroutine_31fc,cstr_23ca _1ea0: DW subroutine_31fc,cstr_23ca DW subroutine_31fc,cstr_23ca DW subroutine_31fc,cstr_23ca DW subroutine_030a,cstr_23ca _1eb0: DW subroutine_030a,cstr_23ca dw subroutine_2e20,cstr_2328 dw subroutine_2b98,cstr_2304 DW subroutine_31fc,cstr_23d9 _1ec0: DW subroutine_31fc,cstr_23d9 DW subroutine_31fc,cstr_23d9 DW subroutine_31fc,cstr_23d9 DW subroutine_030a,cstr_23d9 _1ed0: DW subroutine_030a,cstr_23d9 DW subroutine_2e20,cstr_231e DW subroutine_2b98,cstr_2310 DW subroutine_2bb4,cstr_21ea _1ee0: DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea _1ef0: DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ea DW subroutine_2bb4,cstr_21ee _1f00: DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee _1f10: DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21ee DW subroutine_2bb4,cstr_21e1 _1f20: DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 _1f30: DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e1 DW subroutine_2bb4,cstr_21e6 _1f40: DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 _1f50: DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_2bb4,cstr_21e6 DW subroutine_4390,cstr_21e1 _1f60: DW subroutine_4390,cstr_21e6 dw subroutine_282e,cstr_2392 DW subroutine_0ca0,cstr_21e0 dw subroutine_2e20,cstr_23a9 _1f70: dw subroutine_2e20,cstr_23a4 DW subroutine_0ca0,cstr_21e0 DW subroutine_0ca0,cstr_21e0 DW subroutine_4390,cstr_21e1 _1f80: DW subroutine_282e,cstr_23e2 DW subroutine_4390,cstr_21e1 DW subroutine_282e,cstr_23e2 DW subroutine_2b98,cstr_22a6 _1f90: DW subroutine_2b98,cstr_22bb DW subroutine_2b98,cstr_22d0 DW subroutine_2b98,cstr_22e7 DW subroutine_03bc,cstr_21e0 _1fa0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 _1fb0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 _1fc0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 _1fd0: DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_03bc,cstr_21e0 DW subroutine_13c4,cstr_21e0 _1fe0: DW subroutine_13c4,cstr_21e0 DW subroutine_13c4,cstr_21e0 DW subroutine_13c4,cstr_21e0 DW subroutine_31fc,cstr_23dd _1ff0: DW subroutine_31fc,cstr_23dd DW subroutine_31fc,cstr_2330 DW subroutine_31fc,cstr_2330 DW subroutine_31fc,cstr_23ba _2000: DW subroutine_31fc,cstr_23ba DW subroutine_31fc,cstr_23ba DW subroutine_31fc,cstr_23ba DW subroutine_31fc,cstr_23ba _2010: DW subroutine_31fc,cstr_2274 DW subroutine_31fc,cstr_23ba DW subroutine_31fc,cstr_21e6 DW subroutine_2b98,cstr_2339 _2020: DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 _2030: DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2bb4,cstr_2330 DW subroutine_2b98,cstr_2268 _2040: DW subroutine_2b98,cstr_226e DW subroutine_03bc,cstr_21f5 DW subroutine_2b98,cstr_2342 DW subroutine_4390,cstr_21e1 _2050: DW subroutine_4390,cstr_21e6 DW subroutine_2b98,cstr_2216 DW subroutine_2b98,cstr_2221 DW subroutine_030a,cstr_23ba _2060: DW subroutine_030a,cstr_23ba DW subroutine_030a,cstr_23ba DW subroutine_030a,cstr_23ba DW subroutine_2b98,cstr_2243 _2070: DW subroutine_2b98,cstr_2261 DW subroutine_2b98,cstr_223c DW subroutine_2b98,cstr_225a DW subroutine_030a,cstr_23dd _2080: DW subroutine_030a,cstr_23dd DW subroutine_2b98,cstr_2237 DW subroutine_2b98,cstr_2255 DW subroutine_2b98,cstr_2232 _2090: DW subroutine_2b98,cstr_2250 DW subroutine_2b98,cstr_222c DW subroutine_2b98,cstr_224a DW subroutine_2b46,cstr_23ba _20a0: DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba _20b0: DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba _20c0: DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba _20d0: DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_2b46,cstr_23ba DW subroutine_3050,cstr_21e0 _20e0: DW subroutine_3050,cstr_21e0 DW subroutine_282e,cstr_21fa DW subroutine_2b98,cstr_21fa DW subroutine_31fc,cstr_23ba _20f0: DW subroutine_31fc,cstr_23ba DW subroutine_13c4,cstr_23ba DW subroutine_13c4,cstr_23ba DW subroutine_282e,cstr_23e6 _2100: DW subroutine_2b98,cstr_23ee DW subroutine_282e,cstr_21fe DW subroutine_2b98,cstr_21fe DW subroutine_2b98,cstr_220c _2110: DW subroutine_282e,cstr_2208 DW subroutine_2b98,cstr_2211 DW subroutine_2b98,cstr_2203 DW subroutine_3050,cstr_21e0 _2120: DW subroutine_3050,cstr_21e0 DW subroutine_3050,cstr_21e0 DW subroutine_3050,cstr_21e0, DW subroutine_2b98,cstr_2316 _2130: DW subroutine_2b98,cstr_231a DW subroutine_0ca0,cstr_21e0, DW subroutine_2b98,cstr_2334 DW _0000,_0000 _2140: DW _0000,_0000 DW _0000,_0000 DW _0000,_0000 DW _0000,_0000 _2150: DW _0000,_0000 DW _0000,_0000 DW _0000,_0000 DW subroutine_03bc,cstr_237b _2160: DW subroutine_03bc,cstr_2382 DW subroutine_03bc,cstr_2388 DW subroutine_03bc,cstr_238d ; DW subroutine_282e,cstr_2279 _2170: DW subroutine_282e,cstr_2279 DW subroutine_282e,cstr_227c DW subroutine_282e,cstr_227c ; DW subroutine_03bc,cstr_21f5 _2180: DW subroutine_03bc,cstr_21f2 DW subroutine_03bc,cstr_21f2 DW subroutine_03bc,cstr_21f2 ; DW subroutine_2b98,cstr_2280 _2190: DW subroutine_2b98,cstr_2289 DW subroutine_2b98,cstr_2292 DW subroutine_2b98,cstr_229c ; DW subroutine_2e20,cstr_2398 _21a0: DW subroutine_0ca0,cstr_21e0 DW subroutine_2e20,cstr_23a0 DW subroutine_2e20,cstr_23af DW subroutine_2b98,cstr_233d _21b0: DW subroutine_2b98,cstr_2351 DW subroutine_1272,cstr_21e0 DW subroutine_1272,cstr_21e0 DW subroutine_2b98,cstr_2359 _21c0: DW subroutine_2b98,cstr_2361 DW subroutine_2b98,cstr_234e DW subroutine_2b98,cstr_234b DW subroutine_2b98,cstr_2369 _21d0: DW subroutine_2b98,cstr_2372 DW subroutine_1344,cstr_21e0 DW subroutine_1344,cstr_21e0 DW subroutine_3628,cstr_21e0 cstr_21e0: db 0 ; cstr_21e1: db "PUSH" ,NULL ; cstr_21e6: db "POP" ,NULL cstr_21ea: db "INC" ,NULL cstr_21ee: db "DEC" ,NULL cstr_21f2: db "BR" ,NULL cstr_21f5: db "CALL" ,NULL cstr_21fa: db "RET" ,NULL cstr_21fe: db "RETF" ,NULL cstr_2203: db "RETI" ,NULL cstr_2208: db "BRK" ,NULL cstr_220c: db "BRK3" ,NULL cstr_2211: db "BRKV" ,NULL ; cstr_2216: db "MOV" db TAB, db "AH,PSW" db NULL ;2220: 00 cstr_2221: db "MOV" db TAB, db "PSW,AH" db NULL ;222B: 00 ; cstr_222c: db "CMPMB" ,NULL ;222C: 43 4D 50 4D 42 'CMPMB' cstr_2232: db "LDMB" ,NULL ;2232: 4C 44 4D 42 'LDMB' cstr_2237: db "STMB" ,NULL ;2237: 53 54 4D 42 'STMB' cstr_223c: db "CMPBKB" ,NULL ;223C: 43 4D 50 42 4B 42 'CMPBKB' cstr_2243: db "MOVBKB" ,NULL ;2243: 4D 4F 56 42 4B 42 'MOVBKB' cstr_224a: db "CMPMW" ,NULL ;224A: 43 4D 50 4D 57 'CMPMW' cstr_2250: db "LDMW" ,NULL ;2250: 4C 44 4D 57 'LDMW' cstr_2255: db "STMW" ,NULL ;2255: 53 54 4D 57 'STMW' cstr_225a: db "CMPBKW" ,NULL ;225A: 43 4D 50 42 4B 57 'CMPBKW' cstr_2261: db "MOVBKW" ,NULL ;2261: 4D 4F 56 42 4B 57 'MOVBKW' cstr_2268: db "CVTBW" ,NULL ;2268: 43 56 54 42 57 'CVTBW' cstr_226e: db "CVTWL" ,NULL ;226E: 43 56 54 57 4C 'CVTWL' cstr_2274: db "LDEA" ,NULL ;2274: 4C 44 45 41 'LDEA' cstr_2279: db "IN" ,NULL ;2279: 49 4E 'IN' cstr_227c: db "OUT" ,NULL ;227C: 4F 55 54 'OUT' ; ; ; ; cstr_2280: db "IN" db TAB db "AL,DW" db NULL ;2283: 41 4C 2C 44 57 'AL,DW' cstr_2289: db "IN" db TAB db "AW,DW" db NULL ;228C: 41 57 2C 44 57 'AW,DW' cstr_2292: db "OUT" db TAB db "DW,AL" db NULL ;2296: 44 57 2C 41 4C 'DW,AL' cstr_229c: db "OUT" db TAB db "DW,AW" db NULL ;22A0: 44 57 2C 41 57 'DW,AW' cstr_22a6: db "INM" db TAB db "BYTE PTR [IY],DW" db NULL ;22AA: 42 59 54 45 20 50 54 52 20 5B 49 59 5D 2C 44 57 'BYTE PTR [IY],DW' cstr_22bb: db "INM" db TAB db "WORD PTR [IY],DW" db NULL ;22BF: 57 4F 52 44 20 50 54 52 20 5B 49 59 5D 2C 44 57 'WORD PTR [IY],DW' cstr_22d0: db "OUTM" db TAB db "DW, BYTE PTR [IX]" db NULL ;22D5: 44 57 2C 20 42 59 54 45 20 50 54 52 20 5B 49 58 5D 'DW, BYTE PTR [IX]' cstr_22e7: db "OUTM" db TAB db "DW, WORD PTR [IX]" db NULL ;22FD: 00 ; ; ; cstr_22fe: db "ADJ4A" ,NULL ;22FE: 41 44 4A 34 41 'ADJ4A' cstr_2304: db "ADJBA" ,NULL ;2304: 41 44 4A 42 41 'ADJBA' cstr_230a: db "ADJ4S" ,NULL ;230A: 41 44 4A 34 53 'ADJ4S' cstr_2310: db "ADJBS" ,NULL ;2310: 41 44 4A 42 53 'ADJBS' cstr_2316: db "AAM" ,NULL ;2316: 41 41 4D 'AAM' cstr_231a: db "AAD" ,NULL ;231A: 41 41 44 'AAD' cstr_231e: db "DS0:" ,NULL ;231E: 44 53 30 3A 'DS0:' cstr_2323: db "DS1:" ,NULL ;2323: 44 53 31 3A 'DS1:' cstr_2328: db "SS:" ,NULL ;2328: 53 53 3A 'SS:' cstr_232c: db "PS:" ,NULL ;232C: 50 53 3A 'PS:' cstr_2330: db "XCH" ,NULL ;2330: 58 43 48 'XCH' cstr_2334: db "XLAT" ,NULL ;2334: 58 4C 41 54 'XLAT' cstr_2339: db "NOP" ,NULL ;2339: 4E 4F 50 'NOP' cstr_233d: db "HALT" ,NULL ;233D: 48 41 4C 54 'HALT' cstr_2342: db "POLL" ,NULL ;2342: 50 4F 4C 4C 'POLL' cstr_2347: db "ESC" ,NULL ;2347: 45 53 43 'ESC' cstr_234b: db "EI" ,NULL ;234B: 45 49 'EI' cstr_234e: db "DI" ,NULL ;234E: 44 49 'DI' ; ; ; cstr_2351: db "NOT1" db TAB db "CY" db NULL ;2356: 43 59 'CY' cstr_2359: db "CLR1" db TAB db "CY" db NULL ;2360: 00 cstr_2361: db "SET1" db TAB db "CY" db NULL ;2368: 00 cstr_2369: db "CLR1" db TAB db "DIR" db NULL ;2371: 00 cstr_2372: db "SET1" db TAB db "DIR" db NULL ;237A: 00 ; ; ; cstr_237b: db "DBNZNE" ,NULL ;237B: 44 42 4E 5A 4E 45 'DBNZNE' cstr_2382: db "DBNZE" ,NULL ;2382: 44 42 4E 5A 45 'DBNZE' cstr_2388: db "DBNZ" ,NULL ;2388: 44 42 4E 5A 'DBNZ' cstr_238d: db "BCWZ" ,NULL ;238D: 42 43 57 5A 'BCWZ' cstr_2392: db "BOUND" ,NULL ;2392: 42 4F 55 4E 44 'BOUND' cstr_2398: db "BUSLOCK" ,NULL ;2398: 42 55 53 4C 4F 43 4B 'BUSLOCK' cstr_23a0: db "REP" ,NULL ;23A0: 52 45 50 'REP' cstr_23a4: db "REPC" ,NULL ;23A4: 52 45 50 43 'REPC' cstr_23a9: db "REPNC" ,NULL ;23A9: 52 45 50 4E 43 'REPNC' cstr_23af: db "REPZ" ,NULL ;23AF: 52 45 50 5A 'REPZ' cstr_23b4: db "REPNZ" ,NULL ;23B4: 52 45 50 4E 5A 'REPNZ' cstr_23ba: db "MOV" ,NULL ;23BA: 4D 4F 56 'MOV' cstr_23be: db "ADD" ,NULL ;23BE: 41 44 44 'ADD' cstr_23c2: db "ADC" ,NULL ;23C2: 41 44 43 'ADC' cstr_23c6: db "AND" ,NULL ;23C6: 41 4E 44 'AND' cstr_23ca: db "XOR" ,NULL ;23CA: 58 4F 52 'XOR' cstr_23ce: db "OR" ,NULL ;23CE: 4F 52 'OR' cstr_23d1: db "SBB" ,NULL ;23D1: 53 42 42 'SBB' cstr_23d5: db "SUB" ,NULL ;23D5: 53 55 42 'SUB' cstr_23d9: db "CMP" ,NULL ;23D9: 43 4D 50 'CMP' cstr_23dd: db "TEST" ,NULL ;23DD: 54 45 53 54 'TEST' cstr_23e2: db "MUL" ,NULL ;23E2: 4D 55 4C 'MUL' cstr_23e6: db "PREPARE" ,NULL ;23E6: 50 52 45 50 41 52 45 'PREPARE' cstr_23ee: db "DISPOSE" ,NULL ;23EE: 44 49 53 50 4F 53 45 'DISPOSE' ; ; This is probably a data table: ; pointers into the special function register names ; _23f6: DW cstr_25fe,cstr_2606,cstr_260e,cstr_25f6,cstr_25f6 _2400: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_2616,cstr_261e,cstr_2626,cstr_25f6,cstr_25f6 _2410: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_262e,cstr_2636,cstr_263e,cstr_25f6,cstr_25f6 _2420: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2430: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2440: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2450: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2460: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_2646,cstr_25f6,cstr_25f6,cstr_264e,cstr_25f6 _2470: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_2656,cstr_25f6,cstr_25f6,cstr_25f6,cstr_265e _2480: DW cstr_2666,cstr_266e,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_2676 _2490: DW cstr_267e,cstr_2686,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _24a0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _24b0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_268e,cstr_25f6,cstr_2696,cstr_25f6,cstr_25f6 _24c0: DW cstr_269e,cstr_26a6,cstr_25f6,cstr_26ae,cstr_26b6,cstr_26be,cstr_26c6,cstr_26ce _24d0: DW cstr_26d6,cstr_26de,cstr_25f6,cstr_26e6,cstr_25f6,cstr_26ee,cstr_25f6,cstr_25f6 _24e0: DW cstr_26f6,cstr_26fe,cstr_25f6,cstr_2706,cstr_270e,cstr_2716,cstr_271e,cstr_2726 _24f0: DW cstr_272e,cstr_2736,cstr_25f6,cstr_273e,cstr_2746,cstr_274e,cstr_2756,cstr_25f6 _2500: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_275e,cstr_2766,cstr_276e,cstr_2776,cstr_25f6 _2510: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_277e,cstr_2786,cstr_25f6,cstr_25f6,cstr_278e _2520: DW cstr_2796,cstr_279e,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_27a6 _2530: DW cstr_27ae,cstr_27b6,cstr_25f6,cstr_27be,cstr_27c6,cstr_27ce,cstr_27d6,cstr_25f6 _2540: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_27de _2550: DW cstr_27e6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2560: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2570: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2580: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _2590: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25a0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25b0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_27ee,cstr_27f6,cstr_25f6,cstr_25f6,cstr_25f6 _25c0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_27fe,cstr_2806,cstr_280e,cstr_2816,cstr_281e _25d0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25e0: DW cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6,cstr_25f6 _25f0: DW cstr_25f6,cstr_25f6,cstr_2826 ;; db 0x26 ; '&' ; cstr_25f6 db "......." ,NULL ; ; Special function registers ; See https://www.renesas.com/en/document/mah/v25-v35-168-16-bit-single-chip-microcontrollers-hardware page 78 to 80. ; Base address = xxF00H ; ; cstrings_special_function_register_names: cstr_25fe: db " P0 " ,NULL ;25FE: 20 50 30 20 20 20 20 ' P0 ' cstr_2606: db " PM0 " ,NULL ;2606: 20 50 4D 30 20 20 20 ' PM0 ' cstr_260e: db " PMC0 " ,NULL ;260E: 20 50 4D 43 30 20 20 ' PMC0 ' cstr_2616: db " P1 " ,NULL ;2616: 20 50 31 20 20 20 20 ' P1 ' cstr_261e: db " PM1 " ,NULL ;261E: 20 50 4D 31 20 20 20 ' PM1 ' cstr_2626: db " PMC1 " ,NULL ;2626: 20 50 4D 43 31 20 20 ' PMC1 ' cstr_262e: db " P2 " ,NULL ;262E: 20 50 32 20 20 20 20 ' P2 ' cstr_2636: db " PM2 " ,NULL ;2636: 20 50 4D 32 20 20 20 ' PM2 ' cstr_263e: db " PMC2 " ,NULL ;263E: 20 50 4D 43 32 20 20 ' PMC2 ' cstr_2646: db " PT " ,NULL ;2646: 20 50 54 20 20 20 20 ' PT ' cstr_264e: db " PMT " ,NULL ;264E: 20 50 4D 54 20 20 20 ' PMT ' cstr_2656: db " INTM " ,NULL ;2656: 20 49 4E 54 4D 20 20 ' INTM ' cstr_265e: db " EMS0 " ,NULL ;265E: 20 45 4D 53 30 20 20 ' EMS0 ' cstr_2666: db " EMS1 " ,NULL ;2666: 20 45 4D 53 31 20 20 ' EMS1 ' cstr_266e: db " EMS2 " ,NULL ;266E: 20 45 4D 53 32 20 20 ' EMS2 ' cstr_2676: db " EXIC0 " ,NULL ;2676: 20 45 58 49 43 30 20 ' EXIC0 ' cstr_267e: db " EXIC1 " ,NULL ;267E: 20 45 58 49 43 31 20 ' EXIC1 ' cstr_2686: db " EXIC2 " ,NULL ;2686: 20 45 58 49 43 32 20 ' EXIC2 ' cstr_268e: db " RXB0 " ,NULL ;268E: 20 52 58 42 30 20 20 ' RXB0 ' cstr_2696: db " TXB0 " ,NULL ;2696: 20 54 58 42 30 20 20 ' TXB0 ' cstr_269e: db " SRMS0 " ,NULL ;269E: 20 53 52 4D 53 30 20 ' SRMS0 ' cstr_26a6: db " STMS0 " ,NULL ;26A6: 20 53 54 4D 53 30 20 ' STMS0 ' cstr_26ae: db " SCM0 " ,NULL ;26AE: 20 53 43 4D 30 20 20 ' SCM0 ' cstr_26b6: db " SCC0 " ,NULL ;26B6: 20 53 43 43 30 20 20 ' SCC0 ' cstr_26be: db " BRG0 " ,NULL ;26BE: 20 42 52 47 30 20 20 ' BRG0 ' cstr_26c6: db " SCE0 " ,NULL ;26C6: 20 53 43 45 30 20 20 ' SCE0 ' cstr_26ce: db " SEIC0 " ,NULL ;26CE: 20 53 45 49 43 30 20 ' SEIC0 ' cstr_26d6: db " SRIC0 " ,NULL ;26D6: 20 53 52 49 43 30 20 ' SRIC0 ' cstr_26de: db " STIC0 " ,NULL ;26DE: 20 53 54 49 43 30 20 ' STIC0 ' cstr_26e6: db " RXB1 " ,NULL ;26E6: 20 52 58 42 31 20 20 ' RXB1 ' cstr_26ee: db " TXB1 " ,NULL ;26EE: 20 54 58 42 31 20 20 ' TXB1 ' cstr_26f6: db " SRMS1 " ,NULL ;26F6: 20 53 52 4D 53 31 20 ' SRMS1 ' cstr_26fe: db " STMS1 " ,NULL ;26FE: 20 53 54 4D 53 31 20 ' STMS1 ' cstr_2706: db " SCM1 " ,NULL ;2706: 20 53 43 4D 31 20 20 ' SCM1 ' cstr_270e: db " SCC1 " ,NULL ;270E: 20 53 43 43 31 20 20 ' SCC1 ' cstr_2716: db " BRG1 " ,NULL ;2716: 20 42 52 47 31 20 20 ' BRG1 ' cstr_271e: db " SCE1 " ,NULL ;271E: 20 53 43 45 31 20 20 ' SCE1 ' cstr_2726: db " SEIC1 " ,NULL ;2726: 20 53 45 49 43 31 20 ' SEIC1 ' cstr_272e: db " SRIC1 " ,NULL ;272E: 20 53 52 49 43 31 20 ' SRIC1 ' cstr_2736: db " STIC1 " ,NULL ;2736: 20 53 54 49 43 31 20 ' STIC1 ' cstr_273e: db " TM0 " ,NULL ;273E: 20 54 4D 30 20 20 20 ' TM0 ' cstr_2746: db " TM0H " ,NULL ;2746: 20 54 4D 30 48 20 20 ' TM0H ' cstr_274e: db " MD0 " ,NULL ;274E: 20 4D 44 30 20 20 20 ' MD0 ' cstr_2756: db " MD0H " ,NULL ;2756: 20 4D 44 30 48 20 20 ' MD0H ' cstr_275e: db " TM1 " ,NULL ;275E: 20 54 4D 31 20 20 20 ' TM1 ' cstr_2766: db " TM1H " ,NULL ;2766: 20 54 4D 31 48 20 20 ' TM1H ' cstr_276e: db " MD1 " ,NULL ;276E: 20 4D 44 31 20 20 20 ' MD1 ' cstr_2776: db " MD1H " ,NULL ;2776: 20 4D 44 31 48 20 20 ' MD1H ' cstr_277e: db " TMC0 " ,NULL ;277E: 20 54 4D 43 30 20 20 ' TMC0 ' cstr_2786: db " TMC1 " ,NULL ;2786: 20 54 4D 43 31 20 20 ' TMC1 ' cstr_278e: db " TMMS0 " ,NULL ;278E: 20 54 4D 4D 53 30 20 ' TMMS0 ' cstr_2796: db " TMMS1 " ,NULL ;2796: 20 54 4D 4D 53 31 20 ' TMMS1 ' cstr_279e: db " TMMS2 " ,NULL ;279E: 20 54 4D 4D 53 32 20 ' TMMS2 ' cstr_27a6: db " TMIC0 " ,NULL ;27A6: 20 54 4D 49 43 30 20 ' TMIC0 ' cstr_27ae: db " TMIC1 " ,NULL ;27AE: 20 54 4D 49 43 31 20 ' TMIC1 ' cstr_27b6: db " TMIC2 " ,NULL ;27B6: 20 54 4D 49 43 32 20 ' TMIC2 ' cstr_27be: db " DMAC0 " ,NULL ;27BE: 20 44 4D 41 43 30 20 ' DMAC0 ' cstr_27c6: db " DMAM0 " ,NULL ;27C6: 20 44 4D 41 4D 30 20 ' DMAM0 ' cstr_27ce: db " DMAC1 " ,NULL ;27CE: 20 44 4D 41 43 31 20 ' DMAC1 ' cstr_27d6: db " DMAM1 " ,NULL ;27D6: 20 44 4D 41 4D 31 20 ' DMAM1 ' cstr_27de: db " DIC0 " ,NULL ;27DE: 20 44 49 43 30 20 20 ' DIC0 ' cstr_27e6: db " DIC1 " ,NULL ;27E6: 20 44 49 43 31 20 20 ' DIC1 ' cstr_27ee: db " STBC " ,NULL ;27EE: 20 53 54 42 43 20 20 ' STBC ' cstr_27f6: db " RFM " ,NULL ;27F6: 20 52 46 4D 20 20 20 ' RFM ' cstr_27fe: db " WTC " ,NULL ;27FE: 20 57 54 43 20 20 20 ' WTC ' cstr_2806: db " WTCH " ,NULL ;2806: 20 57 54 43 48 20 20 ' WTCH ' cstr_280e: db " FLAG " ,NULL ;280E: 20 46 4C 41 47 20 20 ' FLAG ' cstr_2816: db " PRC " ,NULL ;2816: 20 50 52 43 20 20 20 ' PRC ' cstr_281e: db " TBIC " ,NULL ;281E: 20 54 42 49 43 20 20 ' TBIC ' cstr_2826: db " IDB " ,NULL ;2826: 20 49 44 42 20 20 20 ' IDB ' ; ; End of special function register names ; subroutine_282e: pusha _282f: cmp al,0x6b _2831: jz _2850 _2833: cmp al,0x69 _2835: jz _285b _2837: mov byte [0xfe],0 _283c: mov byte [0xff],0 _2841: mov cx,1 _2844: mov byte [0x14c],1 _2849: cmp al,0xe4 _284b: jnz _289d _284d: jmp _28d1 _2850: mov cx,1 _2853: mov byte [0x138],2 _2858: jmp short _2863 _285a: nop _285b: mov cx,2 _285e: mov byte [0x138],1 _2863: mov al,3 _2865: mov bx,[0x13f] _2869: mov ah,[es:bx+si] _286c: mov [bx+0x141],ah _2870: inc word [0x13f] _2874: call subroutine_09f6 _2877: mov bx,[0x13f] _287b: mov al,[es:bx+si] _287e: mov [bx+0x141],al _2882: push bx _2883: sub bx,[0x13f] _2887: add bx,0x132 _288b: mov [bx],al _288d: pop bx _288e: inc bx _288f: loop _287b _2891: mov [0x13f],bx _2895: mov byte [0x14c],3 _289a: jmp _29de _289d: cmp al,0xe5 _289f: jnz _28a4 _28a1: jmp short _2906 _28a3: nop _28a4: cmp al,0xe6 _28a6: jnz _28ab _28a8: jmp short _28ee _28aa: nop _28ab: cmp al,0xe7 _28ad: jnz _28b2 _28af: jmp short _2923 _28b1: nop _28b2: cmp al,0xc2 _28b4: jnz _28b9 _28b6: jmp _2943 _28b9: cmp al,0xca _28bb: jnz _28c0 _28bd: jmp _2943 _28c0: cmp al,0xcd _28c2: jnz _28c7 _28c4: jmp short _293b _28c6: nop _28c7: cmp al,0xc8 _28c9: jnz _28ce _28cb: jmp _294e _28ce: jmp _29c5 _28d1: mov byte [0xff],1 _28d6: mov word [0x130],table_29e0 _28dc: mov byte [0x136],2 _28e1: mov byte [0x137],0 _28e6: mov byte [0x14c],2 _28eb: jmp short _295e _28ed: nop _28ee: mov word [0x130],table_29e0 _28f4: mov byte [0x136],2 _28f9: mov byte [0x137],0 _28fe: mov byte [0x14c],2 _2903: jmp short _295e _2905: nop _2906: mov byte [0xff],1 _290b: mov word [0x130],0x29e3 _2911: mov byte [0x136],2 _2916: mov byte [0x137],0 _291b: mov byte [0x14c],2 _2920: jmp short _295e _2922: nop _2923: mov word [0x130],0x29e3 _2929: mov byte [0x136],2 _292e: mov byte [0x137],0 _2933: mov byte [0x14c],2 _2938: jmp short _295e _293a: nop _293b: mov byte [0x136],2 _2940: jmp short _295e _2942: nop _2943: mov cx,2 _2946: mov byte [0x136],1 _294b: jmp short _295e _294d: nop _294e: mov byte [0xfe],1 _2953: mov cx,2 _2956: mov byte [0x14c],2 _295b: jmp short _295e _295d: nop _295e: mov bx,[0x13f] _2962: mov al,[es:bx+si] _2965: mov [bx+0x141],al _2969: push bx _296a: sub bx,[0x13f] _296e: add bx,0x12e _2972: mov [bx],al _2974: pop bx _2975: inc bx _2976: loop _2962 _2978: mov [0x13f],bx _297c: test byte [0xff],1 _2981: jz _2997 _2983: mov ax,[0x12e] _2986: xchg ax,[0x130] _298a: mov [0x12e],ax _298d: mov al,[0x136] _2990: xchg al,[0x137] _2994: mov [0x136],al _2997: test byte [0xfe],1 _299c: jz _29de _299e: mov ax,[0x12e] _29a1: mov al,ah _29a3: mov [0x130],ax _29a6: mov bx,[0x13f] _29aa: mov al,[es:bx+si] _29ad: mov [bx+0x141],al _29b1: inc word [0x13f] _29b5: mov [0x130],ax _29b8: mov byte [0x136],1 _29bd: mov byte [0x137],2 _29c2: jmp short _29de _29c4: nop _29c5: mov al,3 _29c7: mov bx,[0x13f] _29cb: mov ah,[es:bx+si] _29ce: mov [bx+0x141],ah _29d2: inc word [0x13f] _29d6: call subroutine_09f6 _29d9: mov byte [0x14c],2 _29de: popa _29df: ret ; table_29e0: db $41,$4C,$00 table_29e3: db $41,$58,$00 subroutine_29e6: _29e6: push ax _29e7: push bx _29e8: push cx _29e9: push di _29ea: call subroutine_0f74 _29ed: call subroutine_0646 _29f0: mov bx,0x2a58 _29f3: call subroutine_2e42_print_cstr _29f6: call subroutine_300c _29f9: call subroutine_1118 _29fc: call subroutine_31a4 _29ff: cmp al,0xd _2a01: jz _2a52 _2a03: call subroutine_1500 _2a06: jnc _2a4e _2a08: mov bh,al _2a0a: call subroutine_1118 _2a0d: call subroutine_31a4 _2a10: call subroutine_1500 _2a13: jnc _2a4e _2a15: mov ah,bh _2a17: mov di,0x2a5c _2a1a: mov cx,0x15 _2a1d: nop _2a1e: push es _2a1f: push cs _2a20: pop es _2a21: repne scasw _2a23: pop es _2a24: jcxz _2a4e _2a26: mov bx,di _2a28: dec bx _2a29: dec bx _2a2a: sub bx,0x2a5c _2a2e: hint_nop8 bx _2a31: add [si-0x142f],bx _2a35: add bx,0x2a86 _2a39: mov cl,[cs:bx] _2a3c: popf _2a3d: jnz _2a47 _2a3f: unpckhps xmm0,oword [0x22] _2a44: jmp short _2a4c _2a46: nop _2a47: movlps qword [0x22],xmm0 _2a4c: jmp short _29f6 _2a4e: stc _2a4f: jmp short _2a53 _2a51: nop _2a52: clc _2a53: pop di _2a54: pop cx _2a55: pop bx _2a56: pop ax _2a57: ret ; _2a58: or ax,0x2d _2a5b: nop _2a5c: push si _2a5d: dec di _2a5e: push si _2a5f: dec si _2a60: dec si _2a61: inc sp _2a62: push ax _2a63: push bp _2a64: dec cx _2a65: inc bp _2a66: dec cx _2a67: inc sp _2a68: dec cx _2a69: inc dx _2a6a: inc bp _2a6b: inc dx _2a6c: inc di _2a6d: dec si _2a6e: dec sp _2a6f: push ax _2a70: push dx _2a71: pop dx _2a72: pop dx _2a73: dec si _2a74: inc bx _2a75: inc cx _2a76: inc cx _2a77: dec si _2a78: inc bp _2a79: push ax _2a7a: dec di _2a7b: push ax _2a7c: inc bp _2a7d: dec cx _2a7e: inc sp _2a7f: dec cx _2a80: pop cx _2a81: inc bx _2a82: inc bx _2a83: dec si _2a84: add [bx+si],al _2a86: or cx,[bp+di] _2a88: or cl,[bp+si] _2a8a: or [bx+di],cx _2a8c: or [bx+si],cl _2a8e: pop es _2a8f: pop es _2a90: push es _2a91: push es _2a92: add al,4 _2a94: add al,[bp+si] _2a96: add [bx+di],ax _2a98: add [bx+si],al ; subroutine_2a9a: push ax _2a9b: push bx _2a9c: push cx _2a9d: push si _2a9e: call subroutine_2d54 _2aa1: jc _2ad9 _2aa3: push bx _2aa4: mov bx,si _2aa6: call subroutine_2e42_print_cstr _2aa9: mov al,0x20 _2aab: call subroutine_2e32 _2aae: pop bx _2aaf: mov ax,[bx] _2ab1: call subroutine_2cde _2ab4: mov al,0xd _2ab6: call subroutine_2e32 _2ab9: mov al,0x3a _2abb: call subroutine_2e32 _2abe: call subroutine_0f74 _2ac1: call subroutine_300c _2ac4: call subroutine_1118 _2ac7: cmp al,0xd _2ac9: jz _2ada _2acb: call subroutine_3376 _2ace: call subroutine_1196 _2ad1: jc _2ad9 _2ad3: mov [bx],ax _2ad5: clc _2ad6: jmp short _2ada _2ad8: nop _2ad9: stc _2ada: pop si _2adb: pop cx _2adc: pop bx _2add: pop ax _2ade: ret ; _2adf: add [bx+si+0x53],dl _2ae2: push cx _2ae3: mov bx,0x100 _2ae6: call subroutine_2cea _2ae9: jc _2b3f _2aeb: cmp al,0 _2aed: jz _2afa _2aef: cmp al,1 _2af1: jz _2afd _2af3: cmp al,2 _2af5: jz _2b06 _2af7: jmp short _2b3f _2af9: nop _2afa: jmp short _2b3f _2afc: nop _2afd: mov ax,[0x1a] _2b00: mov [0x100],ax _2b03: jmp short _2b09 _2b05: nop _2b06: jmp short _2b09 _2b08: nop _2b09: mov bx,0x104 _2b0c: call subroutine_2cea _2b0f: jc _2b3f _2b11: cmp al,0 _2b13: jz _2b20 _2b15: cmp al,1 _2b17: jz _2b23 _2b19: cmp al,2 _2b1b: jz _2b2c _2b1d: jmp short _2b3f _2b1f: nop _2b20: jmp short _2b3f _2b22: nop _2b23: mov ax,[0x100] _2b26: mov [0x104],ax _2b29: jmp short _2b2f _2b2b: nop _2b2c: jmp short _2b2f _2b2e: nop _2b2f: call subroutine_1196 _2b32: jc _2b3f _2b34: mov cx,ax _2b36: mov bx,0x100 _2b39: call subroutine_0b5c _2b3c: jmp short _2b42 _2b3e: nop _2b3f: call subroutine_0e1e _2b42: pop cx _2b43: pop bx _2b44: pop ax _2b45: ret ; subroutine_2b46: push ax _2b47: push bx _2b48: push cx _2b49: mov cl,1 _2b4b: mov byte [0x137],2 _2b50: hint_nop0 ax _2b53: add si,[si+7] _2b56: mov byte [0x137],1 _2b5b: inc cl _2b5d: and al,0xf _2b5f: cbw _2b60: shl ax,1 _2b62: mov bx,data_2c06_register_names _2b65: add bx,ax _2b67: mov bx,[cs:bx] _2b6a: mov [0x12e],bx _2b6e: mov bx,[0x13f] _2b72: mov al,[es:bx+si] _2b75: mov [bx+0x141],al _2b79: push bx _2b7a: sub bx,[0x13f] _2b7e: add bx,0x130 _2b82: mov [bx],al _2b84: pop bx _2b85: inc bx _2b86: loop _2b72 _2b88: mov [0x13f],bx _2b8c: mov byte [0x14c],2 _2b91: pop cx _2b92: pop bx _2b93: pop ax _2b94: ret ; _2b95: db 0 ; subroutine_2b96: ret ; $C3 ; _2b97: add [bx+si+0x53],dl _2b97: db 0 ; subroutine_2b98: push ax push bx _2b9a: cmp al,0xd4 _2b9c: jz _2ba2 _2b9e: cmp al,0xd5 _2ba0: jnz _2bb1 _2ba2: mov bx,[0x13f] _2ba6: mov al,[es:bx+si] _2ba9: mov [bx+0x141],al _2bad: inc word [0x13f] _2bb1: pop bx _2bb2: pop ax _2bb3: ret ; subroutine_2bb4: ; push ax _2bb5: push bx _2bb6: mov byte [0x108],0 _2bbb: mov ah,al _2bbd: and ah,0xf8 _2bc0: cmp ah,0x90 _2bc3: jnz _2bca ; _2bc5: mov byte [0x108],1 ; _2bca: and al,7 _2bcc: cbw _2bcd: shl ax,1 _2bcf: mov bx,0x2c16 _2bd2: add bx,ax _2bd4: mov bx,[cs:bx] _2bd7: mov [0x12e],bx _2bdb: mov byte [0x14c],1 _2be0: test byte [0x108],1 _2be5: jz _2c03 ; _2be7: mov ax,[0x12e] _2bea: mov [0x130],ax _2bed: mov al,[0x136] _2bf0: mov [0x137],al _2bf3: mov word [0x12e],0x2c3e _2bf9: mov byte [0x136],0 _2bfe: mov byte [0x14c],2 ; _2c03: pop bx _2c04: pop ax _2c05: ret ; data_2c06_register_names: ; dw cstr_2c26 _2C08 dw cstr_2c29 dw cstr_2c2c dw cstr_2c2f dw cstr_2c32 dw cstr_2c35 dw cstr_2c38 dw cstr_2c3b dw cstr_2c3e dw cstr_2c41 dw cstr_2c44 dw cstr_2c47 dw cstr_2c4a dw cstr_2c4d dw cstr_2c50 dw cstr_2c53 ; cstr_2c26: db "AL",NULL ;2C27 cstr_2c29: db "CL",NULL ;2C29: cstr_2c2c: db "DL",NULL ;2C2C: cstr_2c2f: db "BL",NULL ;2C2F: cstr_2c32: db "AH",NULL ;2C32: cstr_2c35: db "CH",NULL ;2C35: cstr_2c38: db "DH",NULL ;2C38: cstr_2c3b: db "BH",NULL ;2C3B: cstr_2c3e: db "AW",NULL ;2C3E: cstr_2c41: db "CW",NULL ;2C41: cstr_2c44: db "DW",NULL ;2C44: cstr_2c47: db "BW",NULL ;2C47: cstr_2c4a: db "SP",NULL ;2C4A: cstr_2c4d: db "BP",NULL ;2C4D: cstr_2c50: db "IX",NULL ;2C50: cstr_2c53: db "IY",NULL ;2C53: ; subroutine_2c56: ; ; push ax ; 50 push bx ; 53 _2c58: and al,7 _2c5a: cbw _2c5b: shl ax,1 _2c5d: mov bx,table_2c70 _2c60: add bx,ax _2c62: mov ax,[cs:bx] _2c65: mov [0x12e],ax _2c68: mov byte [0x14c],1 _2c6d: pop bx _2c6e: pop ax _2c6f: ret ; table_2c70: dw _2c80 ;2C70: 80 db "," ;2C71: 2C ',' dw _2c82 ;2C72: 82 db "," ;2C73: 2C ',' dw _2c84 ;2C74: 84 db "," ;2C75: 2C ',' dw _2c86 ;2C76: 86 db "," ;2C77: 2C ',' dw _2c88 ;2C78: 88 db "," ;2C79: 2C ',' dw _2c8a ;2C7A: 8A db "," ;2C7B: 2C ',' dw _2c8c ;2C7C: 8C db "," ;2C7D: 2C ',' dw _2c8e ;2C7E: 8E db "," ;2C7F: 2C ',' ; _2c80 db "B",0 ;2C80: 42 ',B' db NULL ;2C81: 00 _2c82 db "C",0 ;2C82: 43 'C' db NULL ;2C83: 00 _2c84 db "D",0 ;2C84: 44 'D' db NULL ;2C85: 00 _2c86 db "E",0 ;2C86: 45 'E' db NULL ;2C87: 00 _2c88 db "H",0 ;2C88: 48 'H' db NULL ;2C89: 00 _2c8a db "L",0 ;2C8A: 4C 'L' db NULL ;2C8B: 00 _2c8c db "M",0 ;2C8C: 4D 'M' db NULL ;2C8D: 00 _2c8e db "A",0 ;2C8E: 41 'A' db NULL ;2C8F: 00 ; _2c90: push ax _2c91: push dx _2c92: call subroutine_1196 _2c95: jc _2ca2 _2c97: mov dx,ax _2c99: call subroutine_11ec _2c9c: jc _2ca2 _2c9e: out dx,al _2c9f: jmp short _2ca5 _2ca1: nop _2ca2: call subroutine_0e1e _2ca5: pop dx _2ca6: pop ax _2ca7: ret ; ; db "Command not implemented.",CR,NULL subroutine_2cc2: ; ??? push ax _2cc3: and al,0xf _2cc5: cmp al,0xa _2cc7: jl _2ccb _2cc9: add al,7 _2ccb: add al,0x30 _2ccd: call subroutine_2e32 _2cd0: pop ax _2cd1: ret ; subroutine_2cd2: push ax _2cd3: shr al,byte 4 _2cd4: _2cd6: call subroutine_2cc2 _2cd9: pop ax _2cda: call subroutine_2cc2 _2cdd: ret ; subroutine_2cde: push ax _2cdf: mov al,ah _2ce1: call subroutine_2cd2 _2ce4: pop ax _2ce5: call subroutine_2cd2 _2ce8: ret ; db 0 subroutine_2cea: push bx _2ceb: push cx ; _2cec: call subroutine_300c _2cef: call subroutine_1118 _2cf2: call subroutine_3376 _2cf5: cmp al,0xd _2cf7: jz _2d2c _2cf9: call subroutine_153e _2cfc: jnc _2d01 _2cfe: jmp short _2d06 _2d00: nop _2d01: call subroutine_1196 _2d04: jc _2d4f _2d06: mov [0x10a],ax _2d09: call subroutine_300c _2d0c: call subroutine_1118 _2d0f: call subroutine_3376 _2d12: cmp al,0x3a _2d14: jnz _2d32 _2d16: call subroutine_1118 _2d19: call subroutine_153e _2d1c: jnc _2d21 _2d1e: jmp short _2d26 _2d20: nop _2d21: call subroutine_1196 _2d24: jc _2d4f _2d26: mov [0x10c],ax _2d29: jmp short _2d3e _2d2b: nop _2d2c: mov al,0 _2d2e: clc _2d2f: jmp short _2d50 _2d31: nop _2d32: mov ax,[0x10a] _2d35: mov [bx+2],ax _2d38: mov al,1 _2d3a: clc _2d3b: jmp short _2d50 _2d3d: nop _2d3e: mov ax,[0x10a] _2d41: mov [bx],ax _2d43: mov ax,[0x10c] _2d46: mov [bx+2],ax _2d49: mov al,2 _2d4b: clc _2d4c: jmp short _2d50 _2d4e: nop _2d4f: stc _2d50: pop cx _2d51: pop bx _2d52: ret ; _2d53: db 0 subroutine_2d54: push ax ; 50 _2d55: push bx ; 51 _2d56: push di _2d57: call subroutine_300c _2d5a: call subroutine_1118 _2d5d: call subroutine_31a4 _2d60: call subroutine_1500 _2d63: jnc _2db0 ; _2d65: mov bh,al _2d67: call subroutine_1118 _2d6a: call subroutine_31a4 _2d6d: call subroutine_1500 _2d70: jnc _2db0 ; _2d72: mov ah,bh _2d74: cmp ax,0x4453 _2d77: jnz _2d86 ; _2d79: call subroutine_1118 _2d7c: call subroutine_31a4 _2d7f: call subroutine_1530 _2d82: jnc _2db0 ; _2d84: mov ah,bh ; _2d86: mov di,0x2db6 _2d89: mov cx,0xe _2d8c: nop _2d8d: push es _2d8e: push cs _2d8f: pop es _2d90: repne scasw ; _2d92: pop es _2d93: jcxz _2db0 ; _2d95: dec di _2d96: dec di _2d97: sub di,_2db6 _2d9b: mov bx,di _2d9d: add bx,_2dd2 _2da1: mov bx,[cs:bx] _2da4: shl di,1 _2da6: add di,table_2dec _2daa: mov si,di _2dac: clc _2dad: jmp short _2db1 ; _2daf: nop _2db0: stc ; _2db1: pop di _2db2: pop cx _2db3: pop ax _2db4: ret ; _2db5: nop ; _2db6: push di _2db7: inc cx _2db8: push di _2db9: inc dx _2dba: push di _2dbb: inc bx _2dbc: push di _2dbd: inc sp _2dbe: push ax _2dbf: push bx _2dc0: push ax _2dc1: inc dx _2dc2: pop ax _2dc3: dec cx _2dc4: pop cx _2dc5: dec cx _2dc6: push bx _2dc7: push bx _2dc8: push bx _2dc9: push ax _2dca: xor [si+0x31],al _2dcd: inc sp _2dce: inc bx _2dcf: push ax _2dd0: add [bx+si],al ; ; ; _2dd2: or al,[bx+si] _2dd4: or al,0 _2dd6: push cs _2dd7: add [bx+si],dl _2dd9: add [bx+si],bl _2ddb: add [0x1200],dl _2ddf: add [si],dl _2de1: add [0x2000],bl _2de5: add [bp+si],bl _2de7: add [si],bl _2de9: add [si],ah _2deb: db $24 table_2dec: db "AW" ;2DEC: 41 57 'AW' db NULL,NULL ;2DEE: 00 00 db "BW" ;2DF0: 42 57 'BW' db NULL,NULL ;2DF2: 00 00 db "CW" ;2DF4: 43 57 'CW' db NULL,NULL ;2DF6: 00 00 db "DW" ;2DF8: 44 57 'DW' db NULL,NULL ;2DFA: 00 00 db "SP" ;2DFC: 53 50 'SP' db NULL,NULL ;2DFE: 00 00 db "BP" ;2E00: 42 50 'BP' db NULL,NULL ;2E02: 00 00 db "IX" ;2E04: 49 58 'IX' db NULL,NULL ;2E06: 00 00 db "IY" ;2E08: 49 59 'IY' db NULL,NULL ;2E0A: 00 00 db "SS" ;2E0C: 53 53 'SS' db NULL,NULL ;2E0E: 00 00 db "PS" ;2E10: 50 53 'PS' db NULL,NULL ;2E12: 00 00 db "DS0" ;2E14: 44 53 30 'DS0' db NULL ;2E17: 00 db "DS1" ;2E18: 44 53 31 'DS1' db NULL ;2E1B: 00 db "PC" ;2E1C: 50 43 'PC' db NULL,NULL ;2E1E: 00 00 subroutine_2e20: not byte [0x149] _2e24: ret ; _2e25: db 0 ; add [bx+si+0x52],dl ; subroutine_2e26: push ax push bx _2e28: mov ah,2 _2e2a: mov dl,al _2e2c: call subroutine_0037 _2e2f: pop dx _2e30: pop ax _2e31: ret ; subroutine_2e32: push ax _2e33: call subroutine_2e26 _2e36: cmp al,0xd _2e38: jnz _2e3f ; _2e3a: mov al,0xa _2e3c: call subroutine_2e26 ; _2e3f: pop ax _2e40: ret ; ; db 0 ; subroutine_2e42_print_cstr: db $50, $53 ; _2e44: mov al,[cs:bx] _2e47: cmp al,0 _2e49: jz _2e51 _2e4b: call subroutine_2e32 _2e4e: inc bx _2e4f: jmp short _2e44 _2e51: pop bx _2e52: pop ax _2e53: ret ; unused_2e54: push ax _2e55: push bx _2e56: call subroutine_300c _2e59: call subroutine_1118 _2e5c: call subroutine_31a4 _2e5f: cmp al,0xd _2e61: jnz _2e69 ; _2e63: call subroutine_0808 _2e66: jmp short _2e83 _2e68: nop ; _2e69: cmp al,0x46 _2e6b: jnz _2e75 _2e6d: call subroutine_29e6 _2e70: jc _2e80 _2e72: jmp short _2e83 subroutine_2e73 equ $2e73 ; unbound label? _2e74: nop _2e75: call subroutine_3376 _2e78: call subroutine_2a9a _2e7b: jc _2e80 ; _2e7d: jmp short _2e83 _2e7f: nop ; _2e80: call subroutine_0e1e _2e83: pop bx _2e84: pop ax _2e85: ret ; _2e86: pop es _2e87: aas _2e88: add [bx+si],al subroutine_2e8a: mov word [0xa],0 _2e90: mov word [0xc],0 _2e96: mov word [0xe],0 _2e9c: mov word [0x10],0 _2ea2: mov word [0x18],0xfff _2ea8: mov word [0x16],0 _2eae: mov word [0x12],0 _2eb4: mov word [0x14],0 _2eba: mov word [0x1a],0x100 _2ec0: mov word [0x1c],0x100 _2ec6: mov word [0x1e],0xf00 _2ecc: mov word [0x20],0x100 _2ed2: mov word [0x24],0 _2ed8: mov word [0x22],0xf002 _2ede: ret ; _2edf: db 0 ; subroutine_2ee0: push ax push bx ; _2ee2: push ax _2ee3: shr al,byte 3 _2ee6: and al,7 _2ee8: cbw _2ee9: shl ax,1 _2eeb: mov bx,table_2f0f _2eee: add bx,ax _2ef0: mov ax,[cs:bx] _2ef3: mov [0x12e],ax _2ef6: pop ax _2ef7: and al,7 _2ef9: cbw _2efa: shl ax,1 _2efc: mov bx,table_2f0f _2eff: add bx,ax _2f01: mov ax,[cs:bx] _2f04: mov [0x130],ax _2f07: mov byte [0x14c],2 _2f0c: pop bx _2f0d: pop ax _2f0e: ret ; table_2f0f: dw _2f1f dw _2f21 dw _2f23 dw _2f25 dw _2f27 dw _2f29 dw _2f2b dw _2f2d ; ; OKay to here then gets out of sync: ; _2f1f: db 'B',0 _2f21: db 'C',0 _2f23: db 'D',0 _2f25: db 'E',0 _2f27: db 'H',0 _2f29: db 'L',0 _2f2b: db 'M',0 _2f2d: db 'A',0 _2f2f: db 0 subroutine_2f30 equ $2f30 pushf ; db $9c push es ; 06 db $8f _2f33: adc al,1 _2f35: xchg sp,[0x18] _2f39: xchg bp,[0x16] _2f3d: xchg si,[0x12] _2f41: xchg di,[0x14] _2f45: xchg ax,[0xa] _2f49: xchg bx,[0xc] _2f4d: xchg cx,[0xe] _2f51: xchg dx,[0x10] _2f55: mov [0x10e],ax _2f58: mov ax,es _2f5a: xchg ax,[0x1c] _2f5e: mov es,ax _2f60: mov ax,ss _2f62: xchg ax,[0x1e] _2f66: mov ss,ax _2f68: push word [0x22] _2f6c: push word [0x20] _2f70: push word [0x24] _2f74: push word [0x10e] _2f78: mov ax,[0x110] _2f7b: mov [0x24],ax _2f7e: mov ax,cs _2f80: mov [0x20],ax _2f83: mov ax,[0x114] _2f86: mov [0x22],ax _2f89: mov ax,ds _2f8b: xchg ax,[0x1a] _2f8f: mov ds,ax _2f91: pop ax _2f92: iret ; _2f93: add [0xbb53],bl _2f97: inc ax _2f98: add [bp+0x5bdb],cl _2f9c: pop word [0x1a] _2fa0: pop word [0x110] _2fa4: pop word [0x112] _2fa8: pop word [0x114] _2fac: xchg sp,[0x18] _2fb0: xchg bp,[0x16] _2fb4: xchg si,[0x12] _2fb8: xchg di,[0x14] _2fbc: xchg ax,[0xa] _2fc0: xchg bx,[0xc] _2fc4: xchg cx,[0xe] _2fc8: xchg dx,[0x10] _2fcc: mov [0x116],ax _2fcf: mov ax,es _2fd1: xchg ax,[0x1c] _2fd5: mov es,ax _2fd7: mov ax,ss _2fd9: xchg ax,[0x1e] _2fdd: mov ss,ax _2fdf: mov ax,[0x110] _2fe2: mov [0x24],ax _2fe5: mov ax,[0x114] _2fe8: xchg ax,[0x22] _2fec: push ax _2fed: popf _2fee: mov ax,[0x112] _2ff1: mov [0x20],ax _2ff4: push bx _2ff5: mov bx,0x11e _2ff8: mov [bx],ax _2ffa: mov ax,[0x24] _2ffd: mov [bx+2],ax _3000: mov byte [0x122],0 _3005: pop bx _3006: mov ax,[0x116] _3009: stc _300a: ret ; ; _300b: db 0 ; subroutine_300c: push ax ; $50 _300d: ; E8 08 E1 call 0x1118 _3010: cmp al,0xa _3012: jz _300d _3014: cmp al,0x20 _3016: jz _300d _3018: cmp al,9 _301a: jz _300d _301c: call subroutine_3376 _301f: pop ax _3020: ret ; _3021: db 0 subroutine_3022: push ax push bx _3024: push cx _3025: mov cx,[0xd8] _3029: jcxz _304b _302b: mov bx,cx _302d: dec bx _302e: push bx _302f: shl bx,1 _3031: add bx,0xda _3035: mov bx,[bx] _3037: push ds _3038: mov ax,[0x20] _303b: mov ds,ax _303d: mov al,0xcc _303f: xchg al,[bx] _3041: pop ds _3042: pop bx _3043: add bx,0xee _3047: mov [bx],al _3049: loop _302b _304b: pop cx _304c: pop bx _304d: pop ax _304e: ret ; _304f: db 0 subroutine_3050: push ax push bx _3052: push es _3053: sbb [bx+di],al _3055: add [si],di _3057: db 0xc0 _3058: jz _307a _305a: cmp al,0xc1 _305c: jz _3075 _305e: mov byte [0x118],0 _3063: mov bp,0x3124 _3066: cmp al,0xd0 _3068: jz _307a _306a: cmp al,0xd1 _306c: jz _3075 _306e: mov bp,0x3126 _3071: cmp al,0xd2 _3073: jz _307a _3075: mov dl,3 _3077: jmp short _307c _3079: nop _307a: mov dl,2 _307c: mov bx,[0x13f] _3080: mov al,[es:bx+si] _3083: mov [bx+0x141],al _3087: inc word [0x13f] _308b: mov dh,al _308d: shr al,byte 3 _3090: and al,7 _3092: cbw _3093: shl ax,1 _3095: mov bx,0x30f1 _3098: add bx,ax _309a: mov bx,[cs:bx] _309d: mov [0x12c],bx _30a1: mov ax,dx _30a3: call subroutine_09f6 _30a6: mov ax,[0x130] _30a9: mov [0x12e],ax _30ac: mov al,[0x137] _30af: mov [0x136],al _30b2: mov [0x130],bp _30b6: mov byte [0x137],0 _30bb: cmp byte [0x139],0 _30c0: jz _30c7 _30c2: add byte [0x139],2 _30c7: test byte [0x118],1 _30cc: jz _30e5 _30ce: mov bx,[0x13f] _30d2: mov al,[es:bx+si] _30d5: mov [bx+0x141],al _30d9: inc word [0x13f] _30dd: mov [0x130],ax _30e0: mov byte [0x137],2 _30e5: mov byte [0x14c],2 _30ea: mov byte [0x13d],1 _30ef: popa _30f0: ret ; _30f1: add [bx+di],si _30f3: add ax,0x931 _30f6: xor [0x1331],cx _30fa: xor [bx],dx _30fc: xor [bp+di],bx _30fe: xor [bx],bx _3100: xor [bp+si+0x4f],dx _3103: dec sp _3104: add [bp+si+0x4f],dl _3107: push dx _3108: add [bp+si+0x4f],dl _310b: dec sp _310c: inc bx _310d: add [bp+si+0x4f],dl _3110: push dx _3111: inc bx _3112: add [bp+di+0x48],dl _3115: dec sp _3116: add [bp+di+0x48],dl _3119: push dx _311a: add [bx],bh _311c: aas _311d: aas _311e: add [bp+di+0x48],dl _3121: push dx _3122: inc cx _3123: add [bx+di],dh _3125: add [bp+di+0x4c],al _3128: add [bx+si],al _312a: mov bx,0x40 _312d: mov ds,bx _312f: mov es,[0x1c] _3133: mov ss,[0x1e] _3137: mov sp,[0x18] _313b: mov bp,[0x16] _313f: mov si,[0x12] _3143: mov di,[0x14] _3147: mov ax,[0xa] _314a: mov bx,[0xc] _314e: mov cx,[0xe] _3152: mov dx,[0x10] _3156: push ax _3157: push bx _3158: mov bx,_316d _315b: call subroutine_2e42_print_cstr _315e: call subroutine_2e8a _3161: call subroutine_3510 _3164: mov ax,[0x22] _3167: push ax _3168: popf _3169: clc _316a: pop bx _316b: pop ax _316c: ret ; _316d: db CR,LF ;316D: 0D 0A db "Normal Program Termination" db CR,NULL db 0 ; ; subroutine_318c: _318c: call subroutine_31a4 _318f: call subroutine_1514 _3192: jnc _31a2 _3194: call subroutine_1530 _3197: jc _319b _3199: sub al,7 _319b: sub al,0x30 _319d: clc _319e: jmp short _31a2 _31a0: nop _31a1: stc _31a2: ret ; subroutine_31a3: db $00 ;31A3: 00 ; subroutine_31a4: _31a4: cmp al, 0x61 ; db $3C, $61, ; _31a6: jl _31ae _31a8: cmp al,0x7a _31aa: jg _31ae _31ac: sub al,0x20 _31ae: ret ; _31af: db 0 push ax push cx ; _31b2: call subroutine_300c _31b5: call subroutine_1118 _31b8: call subroutine_3376 ; _31bb: cmp al,0x3d _31bd: jnz _31ca ; _31bf: call subroutine_1118 _31c2: call subroutine_1196 _31c5: jc _31f5 ; _31c7: mov [0x24],ax ; _31ca: call subroutine_1156 _31cd: jc _31f5 ; _31cf: cmp ax,0 _31d2: jnz _31d7 ; _31d4: mov ax,1 _31d7: mov cx,ax _31d9: hint_nop40 word [0x22] ; ; ; _31de: or al,ch _31e0: dec si _31e1: std _31e2: call subroutine_0808 ; _31e5: mov al,0xd _31e7: call subroutine_2e32 ; _31ea: loop 0x31df ; _31df is a duff address - maybe this is data _31ec: bndstx [0x22],bnd0 _31f1: or bl,ch _31f3: add al,0x90 ; _31f5: call subroutine_0e1e _31f8: pop cx _31f9: pop ax _31fa: ret ; ; _31fb: db 0 ; subroutine_31fc: push ax push bx ; _31fe: mov byte [0x11a],0 _3203: mov byte [0x11b],0 _3208: cmp al,0x8d _320a: jz _322d _320c: mov bx,0x32fd _320f: cmp al,0xc5 _3211: jz _3229 _3213: mov bx,0x3302 _3216: cmp al,0xc4 _3218: jz _3229 _321a: cmp al,0x8c _321c: jz _323c _321e: cmp al,0x8e _3220: jz _3232 _3222: cmp al,0x8f _3224: jz _324b _3226: jmp short _3255 _3228: nop _3229: mov [0x14a],bx _322d: mov al,3 _322f: jmp short _3255 _3231: nop _3232: mov al,0x8b _3234: mov byte [0x11c],1 _3239: jmp short _3243 _323b: nop _323c: mov al,0x8b _323e: mov byte [0x11c],0 _3243: mov byte [0x11a],1 _3248: jmp short _3255 _324a: nop _324b: mov byte [0x11b],1 _3250: mov al,3 _3252: jmp short _3255 _3254: nop _3255: mov bx,[0x13f] _3259: mov ah,[es:bx+si] _325c: mov [bx+0x141],ah _3260: mov dl,ah _3262: inc word [0x13f] _3266: call subroutine_09f6 _3269: mov byte [0x14c],2 _326e: test byte [0x11b],1 _3273: jz _3295 _3275: mov byte [0x14c],1 _327a: mov ax,[0x130] _327d: mov [0x12e],ax _3280: mov al,[0x137] _3283: mov [0x136],al _3286: cmp byte [0x139],0 _328b: jz _32f2 _328d: add byte [0x139],2 _3292: jmp short _32f2 _3294: nop _3295: test byte [0x11a],1 _329a: jz _32f2 _329c: mov al,dl _329e: shr al,byte 3 _32a1: and al,3 _32a3: shl al,1 _32a5: cbw _32a6: mov bx,0x32f5 _32a9: add bx,ax _32ab: mov bx,[cs:bx] _32ae: test byte [0x11c],1 _32b3: jnz _32bc _32b5: mov [0x12e],bx _32b9: jmp short _32c3 _32bb: nop _32bc: mov [0x12e],bx _32c0: jmp short _32d7 _32c2: nop _32c3: mov ax,[0x12e] _32c6: xchg ax,[0x130] _32ca: mov [0x12e],ax _32cd: mov al,[0x136] _32d0: xchg al,[0x137] _32d4: mov [0x136],al _32d7: cmp byte [0x139],0 _32dc: jz _32f2 _32de: cmp byte [0x139],3 _32e3: jnl _32ed _32e5: add byte [0x139],2 _32ea: jmp short _32f2 _32ec: nop _32ed: sub byte [0x139],2 _32f2: pop bx _32f3: pop ax _32f4: ret ; _32f5: or si,[bp+di] _32f7: rdpmc _32f9: adc dh,[bp+di] _32fb: pop es _32fc: xor ax,[si+0x53] _32ff: xor [si],ch _3301: add [si+0x53],al _3304: xor [si],bp _3306: add [si+0x53],al _3309: xor [bx+si],al _330b: inc sp _330c: push bx _330d: xor [bx+si],ax _330f: push ax _3310: push bx _3311: add [bp+di+0x53],dl _3314: add [bx+si],al _3316: push ax _3317: push bx _3318: push cx _3319: call subroutine_1118 _331c: call subroutine_31a4 _331f: cmp al,0x4e _3321: jz _3329 _3323: call subroutine_3376 _3326: jmp short _3331 _3328: nop _3329: mov byte [0x122],0 _332e: jmp short _3331 _3330: nop _3331: mov bx,0x11e _3334: call subroutine_2cea _3337: jc _336c _3339: cmp al,0 _333b: jz _3348 _333d: cmp al,1 _333f: jz _334e _3341: cmp al,2 _3343: jz _3357 _3345: jmp short _336c _3347: nop _3348: mov bx,0x11e _334b: jmp short _335a _334d: nop _334e: mov ax,[0x20] _3351: mov [0x11e],ax _3354: jmp short _335a _3356: nop _3357: mov bx,0x11e _335a: mov cx,0xa _335d: mov al,[0x122] _3360: call subroutine_378c _3363: add [0x120],ax _3367: loop _335d _3369: jmp short _3372 _336b: nop _336c: call subroutine_0e1e _336f: jmp short _3372 _3371: nop _3372: pop cx _3373: pop bx _3374: pop ax _3375: ret ; subroutine_3376: push bx _3377: mov bx,[0x84] _337b: cmp bx,byte +0 _337e: jz _3389 _3380: dec bx _3381: mov [bx+0x88],al _3385: mov [0x84],bx _3389: pop bx _338a: ret ; ; L338b: db 0 subroutine_338c: push ax push bx ; _338e: push es _338f: and al,1 _3391: add dh,al _3393: push es _3394: and ax,1 _3397: mov bx,[0x13f] _339b: mov al,[es:bx+si] _339e: mov [bx+0x141],al _33a2: inc word [0x13f] _33a6: cmp al,0x20 _33a8: jnz _33b3 _33aa: mov word [0x12c],0x34d6 _33b0: jmp _34c9 _33b3: cmp al,0x22 _33b5: jnz _33c0 _33b7: mov word [0x12c],0x34dc _33bd: jmp _34c9 _33c0: cmp al,0x26 _33c2: jnz _33cd _33c4: mov word [0x12c],0x34e2 _33ca: jmp _34c9 _33cd: cmp al,0x28 _33cf: jnz _33da _33d1: mov word [0x12c],0x34e8 _33d7: jmp short _3456 _33d9: nop _33da: cmp al,0x2a _33dc: jnz _33e7 _33de: mov word [0x12c],0x34ed _33e4: jmp short _3456 _33e6: nop _33e7: hint_nop0 ax _33ea: add ax,0x1574 _33ed: mov word [0x12c],0x3507 _33f3: hint_nop0 ax _33f6: add [si+6],si _33f9: mov word [0x12c],0x350b _33ff: jmp short _3441 _3401: nop _3402: mov byte [0x125],1 _3407: mov byte [0x13d],1 _340c: mov dh,al _340e: and al,7 _3410: shr al,1 _3412: cbw _3413: shl ax,1 _3415: mov bx,0x34cb _3418: add bx,ax _341a: mov bx,[cs:bx] _341d: mov [0x12c],bx _3421: movups xmm0,xmm6 _3424: add si,[si+5] _3427: mov byte [0x124],1 _342c: movups xmm0,xmm6 _342f: add [si+5],dh _3432: mov al,3 _3434: jmp short _3439 _3436: nop _3437: mov al,2 _3439: mov byte [0x14c],2 _343e: jmp short _3460 _3440: nop _3441: hint_nop0 ax _3444: add si,[si+5] _3447: mov byte [0x124],1 _344c: mov al,2 _344e: mov byte [0x14c],2 _3453: jmp short _3460 _3455: nop _3456: mov al,2 _3458: mov byte [0x14c],1 _345d: jmp short _3460 _345f: nop _3460: mov bx,[0x13f] _3464: mov ah,[es:bx+si] _3467: mov [bx+0x141],ah _346b: inc word [0x13f] _346f: call subroutine_09f6 _3472: test byte [0x125],1 _3477: jz _348b _3479: test byte [0x124],1 _347e: jnz _348b _3480: mov word [0x12e],0x34d3 _3486: mov byte [0x136],0 _348b: mov ax,[0x12e] _348e: xchg ax,[0x130] _3492: mov [0x12e],ax _3495: mov al,[0x136] _3498: xchg al,[0x137] _349c: mov [0x136],al _349f: cmp byte [0x139],0 _34a4: jz _34ab _34a6: add byte [0x139],2 _34ab: test byte [0x124],1 _34b0: jz _34c9 _34b2: mov bx,[0x13f] _34b6: mov al,[es:bx+si] _34b9: mov [bx+0x141],al _34bd: inc word [0x13f] _34c1: mov [0x130],ax _34c4: mov byte [0x137],2 _34c9: popa _34ca: ret ; _34cb: repne xor al,2 _34ce: xor ax,0x34f8 _34d1: std _34d2: xor al,0x43 _34d4: dec sp _34d5: add [bx+di+0x44],al _34d8: inc sp _34d9: xor al,0x53 _34db: add [bp+di+0x55],dl _34de: inc dx _34df: xor al,0x53 _34e1: add [bp+di+0x4d],al _34e4: push ax _34e5: xor al,0x53 _34e7: add [bp+si+0x4f],dl _34ea: dec sp _34eb: xor al,0 _34ed: push dx _34ee: dec di _34ef: push dx _34f0: xor al,0 _34f2: push sp _34f3: inc bp _34f4: push bx _34f5: push sp _34f6: xor [bx+si],ax _34f8: push bx _34f9: inc bp _34fa: push sp _34fb: xor [bx+si],ax _34fd: dec si _34fe: dec di _34ff: push sp _3500: xor [bx+si],ax _3502: inc bx _3503: dec sp _3504: push dx _3505: xor [bx+si],ax _3507: dec cx _3508: dec si _3509: push bx _350a: add [di+0x58],al _350d: push sp _350e: add [bx+si],al subroutine_3510: ; _3510: push ax _3511: push bx _3512: push cx ; _3513: mov ax,[0x20] _3516: mov cx,[0x24] _351a: mov bx,0x80 _351d: mov [bx],ax _351f: mov [bx+2],cx _3522: mov bx,0x6c _3525: mov [bx],ax _3527: mov [bx+2],cx _352a: mov bx,0x11e _352d: mov [bx],ax _352f: mov [bx+2],cx _3532: mov byte [0x122],0 _3537: pop cx _3538: pop bx _3539: pop ax _353a: ret ; ; ; ; _353b: db 0 subroutine_353c: push ax push bx ; _353e: mov byte [0x136],1 _3543: mov bx,[0x13f] _3547: mov al,[es:bx+si] _354a: mov [bx+0x141],al _354e: inc bx _354f: mov ah,[es:bx+si] _3552: mov [bx+0x141],ah _3556: mov [0x12e],ax _3559: add word [0x13f],byte +2 _355e: mov byte [0x14c],1 _3563: pop bx _3564: pop ax _3565: ret ; subroutine_3566: push ax _3567: push bx _3568: shr al,byte 4 _356b: and al,3 _356d: cbw _356e: shl ax,1 _3570: mov bx,0x35a3 _3573: add bx,ax _3575: mov ax,[cs:bx] _3578: mov [0x12e],ax _357b: mov bx,[0x13f] _357f: mov al,[es:bx+si] _3582: mov [bx+0x141],al _3586: inc bx _3587: mov ah,[es:bx+si] _358a: mov [bx+0x141],ah _358e: mov [0x130],ax _3591: mov byte [0x137],1 _3596: add word [0x13f],byte +2 _359b: mov byte [0x14c],2 _35a0: pop bx _35a1: pop ax _35a2: ret ; _35a3: stosw _35a4: xor ax,0x35ad _35a7: scasw _35a8: xor ax,0x35b1 _35ab: inc dx _35ac: add [si+0],al _35af: dec ax _35b0: add [bp+di+0x50],dl _35b3: add al,ch _35b4: _35b5: mov bp,0xbbd9 _35b8: sbb al,0x36 _35ba: call subroutine_2e42_print_cstr _35bd: call subroutine_1134 _35c0: cmp ah,1 _35c3: jz _35b4 _35c5: cmp ah,2 _35c8: jz _35d5 _35ca: mov cx,0x10 _35cd: nop _35ce: mov di,0x360c _35d1: repne scasb _35d3: jz _35da _35d5: call subroutine_0e1e _35d8: jmp short _35b4 _35da: dec di _35db: sub di,0x360c _35df: shl di,1 _35e1: add di,0x35ec _35e5: mov bx,di _35e7: call [cs:di] _35ea: jmp short _35b4 _35ec: mov al,0x3b _35ee: aad 0x40 _35f0: mov sp,0xcc0c _35f3: or ax,0xf26 _35f6: push cs _35f7: adc dh,[bp+si+0x38] _35fa: rcl byte [si],cl _35fc: ss inc dx _35fe: call subroutine_1616 _3601: sub dl,[bx+si+0x542c] _3605: cs stc _3607: cmp al,0xb0 _3609: xor [0x4233],dx _360d: inc bx _360e: inc sp _360f: inc bp _3610: inc si _3611: inc di _3612: dec ax _3613: dec cx _3614: dec bx _3615: dec sp _3616: dec bp _3617: dec di _3618: push dx _3619: push bx _361a: push sp _361b: push bp _361c: or ax,0x2d20 _361f: and [ds:bx+si],al _3622: push ax _3623: push es _3624: pop es _3625: pop ax _3626: ret ; _3627: db 0 subroutine_3628: push ax push bx ; _362a: push es _362b: add [es:bx+si],ax _362e: mov byte [0x127],0 _3633: mov bx,[0x13f] _3637: mov al,[es:bx+si] _363a: mov [bx+0x141],al _363e: inc word [0x13f] _3642: cmp al,0x91 _3644: jnz _364f _3646: mov word [0x12c],cstr_3758_RETRBI _364c: jmp _3756 _364f: cmp al,0x92 _3651: jnz _365c _3653: mov word [0x12c],cstr_375f_FINT _3659: jmp _3756 _365c: cmp al,0x9e _365e: jnz _3669 _3660: mov word [0x12c],cstr_376a_STOP _3666: jmp _3756 _3669: cmp al,0x9c _366b: jnz _3670 _366d: jmp short _36a7 _366f: nop _3670: cmp al,0x25 _3672: jnz _367d _3674: mov word [0x12c],cstr_3775_MOVSPA _367a: jmp _3756 _367d: cmp al,0x2d _367f: jnz _368a ; _3681: mov word [0x12c],cstr_376f_BRKCS _3687: jmp _3731 ; _368a: cmp al,0x94 _368c: jnz _3697 ; _368e: mov word [0x12c],cstr_377c_TSKSW _3694: jmp _3731 ; _3697: cmp al,0x95 _3699: jnz _36a4 ; _369b: mov word [0x12c],cstr_3782_MOVSPB _36a1: jmp _3731 ; _36a4: jmp _3756 ; _36a7: mov word [0x12c],cstr_3764_BTCLR _36ad: mov bx,[0x13f] _36b1: mov al,[es:bx+si] _36b4: mov [bx+0x141],al _36b8: mov ah,0 _36ba: shl ax,1 _36bc: push bx _36bd: sub bx,[0x13f] _36c1: add bx,0x12e _36c5: mov di,0x23f6 _36c8: add di,ax _36ca: mov ax,[cs:di] _36cd: mov [bx],ax _36cf: pop bx _36d0: inc word [0x13f] _36d4: mov bx,[0x13f] _36d8: mov al,[es:bx+si] _36db: mov [bx+0x141],al _36df: mov ah,0 _36e1: push bx _36e2: sub bx,[0x13f] _36e6: add bx,0x130 _36ea: mov [bx],ax _36ec: pop bx _36ed: inc word [0x13f] _36f1: mov bx,[0x13f] _36f5: mov al,[es:bx+si] _36f8: mov [bx+0x141],al _36fc: push bx _36fd: sub bx,[0x13f] _3701: add bx,0x132 _3705: mov [bx],ax _3707: pop bx _3708: inc word [0x13f] _370c: mov ax,[0x132] _370f: add ax,5 _3712: cbw _3713: add ax,[0x12a] _3717: mov [0x132],ax _371a: mov byte [0x136],4 _371f: mov byte [0x137],2 _3724: mov byte [0x138],1 _3729: mov byte [0x14c],3 _372e: jmp short _3756 _3730: nop ; _3731: mov bx,[0x13f] _3735: mov al,[es:bx+si] _3738: mov [bx+0x141],al _373c: inc word [0x13f] _3740: and al,7 _3742: cbw _3743: shl ax,1 _3745: mov bx,0x2c16 _3748: add bx,ax _374a: mov bx,[cs:bx] _374d: mov [0x12e],bx _3751: mov byte [0x14c],1 _3756: popa _3757: ret ; ; New instructions of the V20/V25 ? ; cstr_3758_RETRBI: db "RETRBI" ,NULL ;3758: 52 45 54 52 42 49 'RETRBI' cstr_375f_FINT: db "FINT" ,NULL ;375F: 46 49 4E 54 'FINT' cstr_3764_BTCLR: db "BTCLR" ,NULL ;3764: 42 54 43 4C 52 'BTCLR' cstr_376a_STOP: db "STOP" ,NULL ;376A: 53 54 4F 50 'STOP' cstr_376f_BRKCS: db "BRKCS" ,NULL ;376F: 42 52 4B 43 53 'BRKCS' cstr_3775_MOVSPA: db "MOVSPA" ,NULL ;3775: 4D 4F 56 53 50 41 'MOVSPA' cstr_377c_TSKSW: db "TSKSW" ,NULL ;377C: 54 53 4B 53 57 'TSKSW' cstr_3782_MOVSPB: db "MOVSPB" ,NULL ;3782: 4D 4F 56 53 50 42 'MOVSPB' cstr_3789_CL: db "CL" ,NULL ;3789: 43 4C 'CL' ; subroutine_378c: _378c: pushaw _378d: push es _378e: mov word [0x147],0 _3794: mov [0x14d],al _3797: push bx _3798: mov byte [0x149],0 _379d: mov word [0x13f],0 _37a3: mov byte [0x136],0 _37a8: mov byte [0x137],0 _37ad: mov byte [0x138],0 _37b2: mov byte [0x139],0 _37b7: mov byte [0x14c],0 _37bc: mov byte [0x13d],0 _37c1: mov byte [0x13c],0 _37c6: mov byte [0x13e],0 _37cb: mov ax,0x3870 _37ce: mov [0x12c],ax _37d1: mov [0x12e],ax _37d4: mov [0x130],ax _37d7: mov [0x132],ax _37da: mov [0x14a],ax _37dd: mov si,[bx+2] _37e0: add si,[0x147] _37e4: mov [0x12a],si _37e8: mov ax,[bx] _37ea: mov es,ax _37ec: mov [0x128],ax _37ef: mov al,[es:si] _37f2: push ax _37f3: mov bx,[0x13f] _37f7: mov [bx+0x141],al _37fb: inc word [0x13f] _37ff: cmp al,0xf _3801: jnz _3837 _3803: mov al,[es:si+1] _3807: cmp al,0x92 _3809: jz _382a _380b: cmp al,0x9e _380d: jz _382a _380f: cmp al,0x91 _3811: jz _382a _3813: cmp al,0x9c _3815: jz _382a _3817: cmp al,0x2d _3819: jz _382a _381b: cmp al,0x25 _381d: jz _382a _381f: cmp al,0x94 _3821: jz _382a _3823: cmp al,0x95 _3825: jz _382a _3827: jmp short _3837 _3829: nop _382a: pop ax _382b: push ax _382c: mov ah,0 _382e: add ax,0xf1 _3831: shl ax,byte 2 _3834: jmp short _383e _3836: nop _3837: pop ax _3838: push ax _3839: mov ah,0 _383b: shl ax,byte 2 _383e: test byte [0x14d],1 _3843: jz _3845 _3845: mov di,0x1ddc _3848: add di,ax _384a: mov ax,[cs:di+2] _384e: mov [0x12c],ax _3851: pop ax _3852: call [cs:di] _3855: call subroutine_0584 _3858: pop bx _3859: mov ax,[0x13f] _385c: add [0x147],ax _3860: cmp byte [0x149],0 _3865: jz _386a _3867: jmp _3797 _386a: pop es _386b: popa _386c: mov ax,[0x147] _386f: ret ; _3870: add [bx+si],al _3872: push bx _3873: mov bx,table_387b _3876: call subroutine_2e42_print_cstr _3879: pop bx _387a: ret ; ; ; Never called, probably data table_387b: ; cstr_help_screen: _387b: db "SV25 Monitor Command Summary",CR,CR ;3897: 0D 0D db "B",TAB,TAB,TAB," - Register Bank Display",CR ;38BA: 0D db "C",TAB,TAB,TAB," - DMA Channel Display",CR ;38DA: 0D db "D ( address ) - Display Memory Contents",CR ;3912: 0D db "E address ( list ) - Display/Alter Memory",CR ;3947: 0D db "F address count fill_value - Fill Memory",CR ;3973: 0D db "G ( =start_address )(break (break ...)) - " ;3989: 62 72 65 61 6B 20 28 62 72 65 61 6B 20 2E 2E 2E 29 29 20 2D 20 'break (break ...)) - ' db "Go (Execute) Command",CR ;39B2: 0D _39B3: db "H - This help summary",CR ;39E4: 0D _39E5: db "I port_address - Read Data from I/O Port",CR ;3A1C: 0D _3A1D: db "K",TAB,TAB,TAB," - Macro Service Channel Display",CR ;3A46: 0D _3A47: db "L ( string ) - Download Hex File from Host",CR ;3A82: 0D _3A83: db "M address address count_value - Move Memory Block",CR ;3AB4: 0D _3AB5: db "O port_address data - Output Data to I/O Port",CR ;3AEC: 0D _3AED: db "R ( register ) - Display/Modify Register Contents",CR ;3B2D: 0D _3b2e: db "S",TAB,TAB,TAB," - SFR Display",CR ;3B45: 0D _3b46: db "T ( trace_count) - Instruction Trace",CR ;3B77: 0D _3b78: ;okay to here db "U ( address ) - Disassemble Command" ; _3bab: db CR,CR,CR,CR,NULL ;3BAB: 0D 0D 0D 0D 00 pushaw ;3BB0: 60 '`' _3bb1: push ds _3bb2: mov dx,[0x22] _3bb6: shr dx,byte 0xc _3bb9: and dl,7 _3bbc: mov bx,0x3c20 _3bbf: call subroutine_2e42_print_cstr _3bc2: mov ax,0xffff _3bc5: mov ds,ax _3bc7: mov si,0xf _3bca: mov ah,[si] _3bcc: mov al,0 _3bce: mov ds,ax _3bd0: mov si,0xe00 _3bd3: mov cl,8 _3bd5: mov dh,0 _3bd7: mov bp,0 _3bda: add si,byte +2 _3bdd: mov ch,0xf _3bdf: mov bx,0x3cd1 _3be2: add bx,bp _3be4: call subroutine_2e42_print_cstr _3be7: cmp dh,dl _3be9: jnz _3bf7 _3beb: mov bx,0x3c86 _3bee: call subroutine_2e42_print_cstr _3bf1: add si,byte +0x1e _3bf4: jmp short _3c0f _3bf6: nop _3bf7: mov ax,[si] _3bf9: xchg al,ah _3bfb: call subroutine_2cd2 _3bfe: xchg al,ah _3c00: call subroutine_2cd2 _3c03: mov al,0x20 _3c05: call subroutine_2e32 _3c08: add si,byte +2 _3c0b: dec ch _3c0d: jnz 0x3bf7 _3c0f: mov al,0xd _3c11: call subroutine_2e32 _3c14: inc dh _3c16: add bp,byte +5 _3c19: dec cl _3c1b: jnz 0x3bda _3c1d: pop ds _3c1e: popa _3c1f: ret ; ; never called _3c20: push dx _3c21: inc bp _3c22: inc di _3c23: dec cx _3c24: push bx _3c25: push sp _3c26: inc bp _3c27: push dx _3c28: and [bp+si+0x41],al _3c2b: dec si _3c2c: dec bx _3c2d: and [si+0x49],al _3c30: push bx _3c31: push ax _3c32: dec sp _3c33: inc cx _3c34: pop cx _3c35: cmp cl,[di] _3c37: and [bx+si],ah _3c39: and [bx+si],ah _3c3b: jna 0x3ca0 _3c3d: push ax _3c3e: inc bx _3c3f: and [bx+si+0x53],dl _3c42: push di _3c43: jnc 0x3c65 _3c45: push ax _3c46: inc bx _3c47: jnc 0x3caa _3c49: and [si+0x53],al _3c4c: xor [bx+si],ah _3c4e: and [bx+si],ah _3c50: push bx _3c51: push bx _3c52: and [bx+si],ah _3c54: and [bx+si+0x53],dl _3c57: and [bx+si],ah _3c59: inc sp _3c5a: push bx _3c5b: xor [bx+si],sp _3c5d: and [bx+si],ah _3c5f: dec cx _3c60: pop cx _3c61: and [bx+si],ah _3c63: and [bp+di+0x49],dl _3c66: and [bx+si],ah _3c68: and [bp+si+0x50],al _3c6b: and [bx+si],ah _3c6d: and [bp+di+0x50],dl _3c70: and [bx+si],ah _3c72: and [bp+si+0x58],al _3c75: and [bx+si],ah _3c77: and [si+0x58],al _3c7a: and [bx+si],ah _3c7c: and [bp+di+0x57],al _3c7f: and [bx+si],ah _3c81: and [bx+di+0x57],al _3c84: or ax,0x2a00 _3c87: sub ch,[bp+si] _3c89: sub ah,[bx+si] _3c8b: sub ch,[bp+si] _3c8d: sub ch,[bp+si] _3c8f: and [bp+si],ch _3c91: sub ch,[bp+si] _3c93: sub ah,[bx+si] _3c95: sub ch,[bp+si] _3c97: sub ch,[bp+si] _3c99: and [bp+si],ch _3c9b: sub ch,[bp+si] _3c9d: sub ah,[bx+si] _3c9f: sub ch,[bp+si] _3ca1: sub ch,[bp+si] _3ca3: and [bp+si],ch _3ca5: sub ch,[bp+si] _3ca7: sub ah,[bx+si] _3ca9: sub ch,[bp+si] _3cab: sub ch,[bp+si] _3cad: and [bp+si],ch _3caf: sub ch,[bp+si] _3cb1: sub ah,[bx+si] _3cb3: sub ch,[bp+si] _3cb5: sub ch,[bp+si] _3cb7: and [bp+si],ch _3cb9: sub ch,[bp+si] _3cbb: sub ah,[bx+si] _3cbd: sub ch,[bp+si] _3cbf: sub ch,[bp+si] _3cc1: and [bp+si],ch _3cc3: sub ch,[bp+si] _3cc5: sub ah,[bx+si] _3cc7: sub ch,[bp+si] _3cc9: sub ch,[bp+si] _3ccb: and [bp+si],ch _3ccd: sub ch,[bp+si] _3ccf: sub al,[bx+si] _3cd1: inc dx _3cd2: xor [bp+si],bh _3cd4: and [bx+si],al _3cd6: inc dx _3cd7: xor [bp+si],di _3cd9: and [bx+si],al _3cdb: inc dx _3cdc: xor bh,[bp+si] _3cde: and [bx+si],al _3ce0: inc dx _3ce1: xor di,[bp+si] _3ce3: and [bx+si],al _3ce5: inc dx _3ce6: xor al,0x3a _3ce8: and [bx+si],al _3cea: inc dx _3ceb: xor ax,0x203a _3cee: add [bp+si+0x36],al _3cf1: cmp ah,[bx+si] _3cf3: add [bp+si+0x37],al _3cf6: cmp ah,[bx+si] _3cf8: add [bx+si+0x1e],ah _3cfb: mov bx,0x4095 _3cfe: call subroutine_2e42_print_cstr _3d01: mov ax,0xffff _3d04: mov ds,ax _3d06: mov si,0xf _3d09: mov ah,[si] _3d0b: mov al,0 _3d0d: mov ds,ax _3d0f: mov si,0xf00 _3d12: mov bx,0x25fe _3d15: call subroutine_2e42_print_cstr _3d18: mov al,[si] _3d1a: call subroutine_2cd2 _3d1d: mov si,0xf08 _3d20: mov bx,0x2616 _3d23: call subroutine_2e42_print_cstr _3d26: mov al,[si] _3d28: call subroutine_2cd2 _3d2b: mov si,0xf10 _3d2e: mov bx,0x262e _3d31: call subroutine_2e42_print_cstr _3d34: mov al,[si] _3d36: call subroutine_2cd2 _3d39: mov si,0xf38 _3d3c: mov bx,0x2646 _3d3f: call subroutine_2e42_print_cstr _3d42: mov al,[si] _3d44: call subroutine_2cd2 _3d47: mov si,0xf3b _3d4a: mov bx,0x264e _3d4d: call subroutine_2e42_print_cstr _3d50: mov al,[si] _3d52: call subroutine_2cd2 _3d55: mov bx,0x40d0 _3d58: call subroutine_2e42_print_cstr _3d5b: mov si,0xf40 _3d5e: mov bx,0x2656 _3d61: call subroutine_2e42_print_cstr _3d64: mov al,[si] _3d66: call subroutine_2cd2 _3d69: mov si,0xf44 _3d6c: mov bx,0x265e _3d6f: call subroutine_2e42_print_cstr _3d72: mov al,[si] _3d74: call subroutine_2cd2 _3d77: mov si,0xf45 _3d7a: mov bx,0x2666 _3d7d: call subroutine_2e42_print_cstr _3d80: mov al,[si] _3d82: call subroutine_2cd2 _3d85: mov si,0xf46 _3d88: mov bx,0x266e _3d8b: call subroutine_2e42_print_cstr _3d8e: mov al,[si] _3d90: call subroutine_2cd2 _3d93: mov si,0xf4c _3d96: mov bx,0x2676 _3d99: call subroutine_2e42_print_cstr _3d9c: mov al,[si] _3d9e: call subroutine_2cd2 _3da1: mov si,0xf4d _3da4: mov bx,0x267e _3da7: call subroutine_2e42_print_cstr _3daa: mov al,[si] _3dac: call subroutine_2cd2 _3daf: mov si,0xf4e _3db2: mov bx,0x2686 _3db5: call subroutine_2e42_print_cstr _3db8: mov al,[si] _3dba: call subroutine_2cd2 _3dbd: mov bx,0x40d0 _3dc0: call subroutine_2e42_print_cstr _3dc3: mov si,0xf60 _3dc6: mov bx,0x268e _3dc9: call subroutine_2e42_print_cstr _3dcc: mov al,[si] _3dce: call subroutine_2cd2 _3dd1: mov si,0xf65 _3dd4: mov bx,0x269e _3dd7: call subroutine_2e42_print_cstr _3dda: mov al,[si] _3ddc: call subroutine_2cd2 _3ddf: mov si,0xf66 _3de2: mov bx,0x26a6 _3de5: call subroutine_2e42_print_cstr _3de8: mov al,[si] _3dea: call subroutine_2cd2 _3ded: mov si,0xf68 _3df0: mov bx,0x26ae _3df3: call subroutine_2e42_print_cstr _3df6: mov al,[si] _3df8: call subroutine_2cd2 _3dfb: mov si,0xf69 _3dfe: mov bx,0x26b6 _3e01: call subroutine_2e42_print_cstr _3e04: mov al,[si] _3e06: call subroutine_2cd2 _3e09: mov si,0xf6a _3e0c: mov bx,0x26be _3e0f: call subroutine_2e42_print_cstr _3e12: mov al,[si] _3e14: call subroutine_2cd2 _3e17: mov bx,0x40d3 _3e1a: call subroutine_2e42_print_cstr _3e1d: mov si,0xf6b _3e20: mov bx,0x26c6 _3e23: call subroutine_2e42_print_cstr _3e26: mov al,[si] _3e28: call subroutine_2cd2 _3e2b: mov si,0xf6c _3e2e: mov bx,0x26ce _3e31: call subroutine_2e42_print_cstr _3e34: mov al,[si] _3e36: call subroutine_2cd2 _3e39: mov si,0xf6d _3e3c: mov bx,0x26d6 _3e3f: call subroutine_2e42_print_cstr _3e42: mov al,[si] _3e44: call subroutine_2cd2 _3e47: mov si,0xf6e _3e4a: mov bx,0x26de _3e4d: call subroutine_2e42_print_cstr _3e50: mov al,[si] _3e52: call subroutine_2cd2 _3e55: mov bx,0x40d0 _3e58: call subroutine_2e42_print_cstr _3e5b: mov si,0xf70 _3e5e: mov bx,0x26e6 _3e61: call subroutine_2e42_print_cstr _3e64: mov al,[si] _3e66: call subroutine_2cd2 _3e69: mov si,0xf75 _3e6c: mov bx,0x26f6 _3e6f: call subroutine_2e42_print_cstr _3e72: mov al,[si] _3e74: call subroutine_2cd2 _3e77: mov si,0xf76 _3e7a: mov bx,0x26fe _3e7d: call subroutine_2e42_print_cstr _3e80: mov al,[si] _3e82: call subroutine_2cd2 _3e85: mov si,0xf78 _3e88: mov bx,0x2706 _3e8b: call subroutine_2e42_print_cstr _3e8e: mov al,[si] _3e90: call subroutine_2cd2 _3e93: mov si,0xf79 _3e96: mov bx,0x270e _3e99: call subroutine_2e42_print_cstr _3e9c: mov al,[si] _3e9e: call subroutine_2cd2 _3ea1: mov si,0xf7a _3ea4: mov bx,0x2716 _3ea7: call subroutine_2e42_print_cstr _3eaa: mov al,[si] _3eac: call subroutine_2cd2 _3eaf: mov bx,0x40d3 _3eb2: call subroutine_2e42_print_cstr _3eb5: mov si,0xf7b _3eb8: mov bx,0x271e _3ebb: call subroutine_2e42_print_cstr _3ebe: mov al,[si] _3ec0: call subroutine_2cd2 _3ec3: mov si,0xf7c _3ec6: mov bx,0x2726 _3ec9: call subroutine_2e42_print_cstr _3ecc: mov al,[si] _3ece: call subroutine_2cd2 _3ed1: mov si,0xf7d _3ed4: mov bx,0x272e _3ed7: call subroutine_2e42_print_cstr _3eda: mov al,[si] _3edc: call subroutine_2cd2 _3edf: mov si,0xf7e _3ee2: mov bx,0x2736 _3ee5: call subroutine_2e42_print_cstr _3ee8: mov al,[si] _3eea: call subroutine_2cd2 _3eed: mov bx,0x40d0 _3ef0: call subroutine_2e42_print_cstr _3ef3: mov si,0xf80 _3ef6: mov bx,0x273e _3ef9: call subroutine_2e42_print_cstr _3efc: mov ax,[si] _3efe: xchg al,ah _3f00: call subroutine_2cd2 _3f03: xchg al,ah _3f05: call subroutine_2cd2 _3f08: mov si,0xf82 _3f0b: mov bx,0x274e _3f0e: call subroutine_2e42_print_cstr _3f11: mov ax,[si] _3f13: xchg al,ah _3f15: call subroutine_2cd2 _3f18: xchg al,ah _3f1a: call subroutine_2cd2 _3f1d: mov si,0xf88 _3f20: mov bx,0x275e _3f23: call subroutine_2e42_print_cstr _3f26: mov ax,[si] _3f28: xchg al,ah _3f2a: call subroutine_2cd2 _3f2d: xchg al,ah _3f2f: call subroutine_2cd2 _3f32: mov si,0xf8a _3f35: mov bx,0x276e _3f38: call subroutine_2e42_print_cstr _3f3b: mov ax,[si] _3f3d: xchg al,ah _3f3f: call subroutine_2cd2 _3f42: xchg al,ah _3f44: call subroutine_2cd2 _3f47: mov si,0xf90 _3f4a: mov bx,0x277e _3f4d: call subroutine_2e42_print_cstr _3f50: mov al,[si] _3f52: call subroutine_2cd2 _3f55: mov si,0xf91 _3f58: mov bx,0x2786 _3f5b: call subroutine_2e42_print_cstr _3f5e: mov al,[si] _3f60: call subroutine_2cd2 _3f63: mov bx,0x40d3 _3f66: call subroutine_2e42_print_cstr _3f69: mov si,0xf94 _3f6c: mov bx,0x278e _3f6f: call subroutine_2e42_print_cstr _3f72: mov al,[si] _3f74: call subroutine_2cd2 _3f77: mov si,0xf95 _3f7a: mov bx,0x2796 _3f7d: call subroutine_2e42_print_cstr _3f80: mov al,[si] _3f82: call subroutine_2cd2 _3f85: mov si,0xf96 _3f88: mov bx,0x279e _3f8b: call subroutine_2e42_print_cstr _3f8e: mov al,[si] _3f90: call subroutine_2cd2 _3f93: mov si,0xf9c _3f96: mov bx,0x27a6 _3f99: call subroutine_2e42_print_cstr _3f9c: mov al,[si] _3f9e: call subroutine_2cd2 _3fa1: mov si,0xf9d _3fa4: mov bx,0x27ae _3fa7: call subroutine_2e42_print_cstr _3faa: mov al,[si] _3fac: call subroutine_2cd2 _3faf: mov si,0xf9e _3fb2: mov bx,0x27b6 _3fb5: call subroutine_2e42_print_cstr _3fb8: mov al,[si] _3fba: call subroutine_2cd2 _3fbd: mov bx,0x40d0 _3fc0: call subroutine_2e42_print_cstr _3fc3: mov si,0xfa0 _3fc6: mov bx,0x27be _3fc9: call subroutine_2e42_print_cstr _3fcc: mov al,[si] _3fce: call subroutine_2cd2 _3fd1: mov si,0xfa1 _3fd4: mov bx,0x27c6 _3fd7: call subroutine_2e42_print_cstr _3fda: mov al,[si] _3fdc: call subroutine_2cd2 _3fdf: mov si,0xfa2 _3fe2: mov bx,0x27ce _3fe5: call subroutine_2e42_print_cstr _3fe8: mov al,[si] _3fea: call subroutine_2cd2 _3fed: mov si,0xfa3 _3ff0: mov bx,0x27d6 _3ff3: call subroutine_2e42_print_cstr _3ff6: mov al,[si] _3ff8: call subroutine_2cd2 _3ffb: mov si,0xfac _3ffe: mov bx,0x27de _4001: call subroutine_2e42_print_cstr _4004: mov al,[si] _4006: call subroutine_2cd2 _4009: mov si,0xfad _400c: mov bx,0x27e6 _400f: call subroutine_2e42_print_cstr _4012: mov al,[si] _4014: call subroutine_2cd2 _4017: mov bx,0x40d0 _401a: call subroutine_2e42_print_cstr _401d: mov si,0xfe0 _4020: mov bx,0x27ee _4023: call subroutine_2e42_print_cstr _4026: mov al,[si] _4028: call subroutine_2cd2 _402b: mov si,0xfe1 _402e: mov bx,0x27f6 _4031: call subroutine_2e42_print_cstr _4034: mov al,[si] _4036: call subroutine_2cd2 _4039: mov si,0xfe8 _403c: mov bx,0x27fe _403f: call subroutine_2e42_print_cstr _4042: mov ax,[si] _4044: xchg al,ah _4046: call subroutine_2cd2 _4049: xchg al,ah _404b: call subroutine_2cd2 _404e: mov si,0xfea _4051: mov bx,0x280e _4054: call subroutine_2e42_print_cstr _4057: mov al,[si] _4059: call subroutine_2cd2 _405c: mov si,0xfeb _405f: mov bx,0x2816 _4062: call subroutine_2e42_print_cstr _4065: mov al,[si] _4067: call subroutine_2cd2 _406a: mov si,0xfec _406d: mov bx,0x281e _4070: call subroutine_2e42_print_cstr _4073: mov al,[si] _4075: call subroutine_2cd2 _4078: mov bx,0x40d0 _407b: call subroutine_2e42_print_cstr _407e: mov si,0xfff _4081: mov bx,0x2826 _4084: call subroutine_2e42_print_cstr _4087: mov al,[si] _4089: call subroutine_2cd2 _408c: mov bx,0x40d0 _408f: call subroutine_2e42_print_cstr _4092: pop ds _4093: popa _4094: ret ; ; ; cstr_special_function_registers_read_only: ; _4095: db "SPECIAL FUNCTION REGISTER DISPLAY (READ-ONLY-REGISTERS):" _40cd: db CR,LF,NULL, _40d0: db CR,LF,NULL ;40CD: 0D 0A 00 0D 0A 00 _40d3: db CR,NULL ;40D3: 0D 00 _40d5: pusha ;40D5: 60 '`' _40d6: push ds _40d7: mov dx,[0x22] _40db: shr dx,byte 0xc _40de: and dl,7 _40e1: cmp dl,0 _40e4: jnz _40ef _40e6: mov bx,0x41e0 _40e9: call subroutine_2e42_print_cstr _40ec: jmp _4173 _40ef: mov bx,0x4176 _40f2: call subroutine_2e42_print_cstr _40f5: mov ax,0xffff _40f8: mov ds,ax _40fa: mov si,0xf _40fd: mov ah,[si] _40ff: mov al,0 _4101: mov ds,ax _4103: mov si,0xe00 _4106: mov cl,2 _4108: mov bp,0 _410b: mov bx,0x41be _410e: add bx,bp _4110: call subroutine_2e42_print_cstr _4113: mov al,[si+5] _4116: call subroutine_2cd2 _4119: mov bx,0x41dc _411c: call subroutine_2e42_print_cstr _411f: mov ax,[si] _4121: xchg al,ah _4123: call subroutine_2cd2 _4126: xchg al,ah _4128: call subroutine_2cd2 _412b: mov bx,0x41b4 _412e: call subroutine_2e42_print_cstr _4131: mov al,[si+4] _4134: call subroutine_2cd2 _4137: mov bx,0x41dc _413a: call subroutine_2e42_print_cstr _413d: mov ax,[si+2] _4140: xchg al,ah _4142: call subroutine_2cd2 _4145: xchg al,ah _4147: call subroutine_2cd2 _414a: mov bx,0x41b4 _414d: call subroutine_2e42_print_cstr _4150: mov ax,[si+6] _4153: xchg al,ah _4155: call subroutine_2cd2 _4158: xchg al,ah _415a: call subroutine_2cd2 _415d: mov bx,0x40d3 _4160: call subroutine_2e42_print_cstr _4163: add bp,byte +0xf _4166: mov si,0xe08 _4169: dec cl _416b: jnz _410b _416d: mov bx,0x40d0 _4170: call subroutine_2e42_print_cstr _4173: pop ds _4174: popa _4175: ret ; _4176: inc sp _4177: dec bp _4178: inc cx _4179: and [bp+di+0x41],al _417c: dec si _417d: dec si _417e: inc bp _417f: dec sp _4180: and [si+0x49],al _4183: push bx _4184: push ax _4185: dec sp _4186: inc cx _4187: pop cx _4188: cmp cl,[di] _418a: or cl,[bx+di] _418c: or [bp+di+0x4f],dx _418f: push bp _4190: push dx _4191: inc bx _4192: inc bp _4193: or [bx+si],sp _4195: and [bx+si],ah _4197: and [bx+si],ah _4199: and [bx+si],ah _419b: inc sp _419c: inc bp _419d: push bx _419e: push sp _419f: dec cx _41a0: dec si _41a1: inc cx _41a2: push sp _41a3: dec cx _41a4: dec di _41a5: dec si _41a6: and [bx+si],ah _41a8: and [bx+si],ah _41aa: and [bx+si],ah _41ac: and [bp+di+0x4f],al _41af: push bp _41b0: dec si _41b1: push sp _41b2: or ax,0x2000 _41b5: and [bx+si],ah _41b7: and [bx+si],ah _41b9: and [bx+si],ah _41bb: and [bx+si],ah _41bd: add [bp+di+0x48],al _41c0: inc cx _41c1: dec si _41c2: dec si _41c3: inc bp _41c4: dec sp _41c5: xor [bp+si],bh _41c7: and [bx+si],ah _41c9: and [bx+si],ah _41cb: and [bx+si],al _41cd: inc bx _41ce: dec ax _41cf: inc cx _41d0: dec si _41d1: dec si _41d2: inc bp _41d3: dec sp _41d4: xor [bp+si],di _41d6: and [bx+si],ah _41d8: and [bx+si],ah _41da: and [bx+si],al _41dc: xor [bx+si],dh _41de: cmp al,[bx+si] _41e0: inc bx _41e1: inc cx _41e2: dec si _41e3: dec si _41e4: dec di _41e5: push sp _41e6: and [si+0x49],al _41e9: push bx _41ea: push ax _41eb: dec sp _41ec: inc cx _41ed: pop cx _41ee: and [si+0x4d],al _41f1: inc cx _41f2: and [bp+di+0x48],al _41f5: inc cx _41f6: dec si _41f7: dec si _41f8: inc bp _41f9: dec sp _41fa: push bx _41fb: and [bp+si+0x45],al _41fe: inc bx _41ff: inc cx _4200: push bp _4201: push bx _4202: inc bp _4203: and [bp+si+0x45],dl _4206: inc di _4207: dec cx _4208: push bx _4209: push sp _420a: inc bp _420b: push dx _420c: and [bp+si+0x41],al _420f: dec si _4210: dec bx _4211: xor [di],cl _4213: dec cx _4214: push bx _4215: and [bx+di+0x43],al _4218: push sp _4219: push bp _421a: inc bp _421b: dec sp _421c: dec sp _421d: and [bp+si+0x45],dl _4220: inc di _4221: dec cx _4222: push bx _4223: push sp _4224: inc bp _4225: push dx _4226: and [bp+si+0x41],al _4229: dec si _422a: dec bx _422b: and [bx+di],sp _422d: and [bx+di],sp _422f: and [bx+di],sp _4231: and [bx+di],sp _4233: or ax,0xa _4236: pusha _4237: push ds _4238: mov dx,[0x22] _423c: shr dx,byte 0xc _423f: and dl,7 _4242: mov ax,0xffff _4245: mov ds,ax _4247: mov si,0xf _424a: mov ah,[si] _424c: mov al,0 _424e: mov ds,ax _4250: mov si,0xe00 _4253: mov bp,0 _4256: mov cl,8 _4258: mov ch,0 _425a: mov bx,0x42dd _425d: call subroutine_2e42_print_cstr _4260: mov bx,0x4353 _4263: add bx,bp _4265: call subroutine_2e42_print_cstr _4268: cmp cl,4 _426b: jnz _426f _426d: inc ch _426f: cmp dl,ch _4271: jnz _427c _4273: mov bx,0x4323 _4276: call subroutine_2e42_print_cstr _4279: jmp short _42cb _427b: nop _427c: mov ax,[si+6] _427f: xchg al,ah _4281: call subroutine_2cd2 _4284: xchg al,ah _4286: call subroutine_2cd2 _4289: mov al,0x3a _428b: call subroutine_2e32 _428e: mov ax,[si+4] _4291: xchg al,ah _4293: call subroutine_2cd2 _4296: xchg al,ah _4298: call subroutine_2cd2 _429b: mov bx,0x438b _429e: call subroutine_2e42_print_cstr _42a1: mov ax,0 _42a4: mov al,[si+1] _42a7: shl ax,1 _42a9: mov bx,0x23f6 _42ac: add bx,ax _42ae: mov bx,[cs:bx] _42b1: call subroutine_2e42_print_cstr _42b4: mov bx,0x438b _42b7: call subroutine_2e42_print_cstr _42ba: mov al,[si+2] _42bd: call subroutine_2cd2 _42c0: mov bx,0x41b4 _42c3: call subroutine_2e42_print_cstr _42c6: mov al,[si] _42c8: call subroutine_2cd2 _42cb: add bp,byte +7 _42ce: mov al,0xd _42d0: call subroutine_2e32 _42d3: add si,byte +8 _42d6: dec cl _42d8: jnz _4260 _42da: pop ds _42db: popa _42dc: ret ; db RETN_C3 ;42DC: C3 ; cstr_macro_channels_display_screen: db "MACRO CHANNELS DISPLAY:" ;42DD: 4D 41 43 52 4F 20 43 48 41 4E 4E 45 4C 53 20 44 49 53 50 4C 41 'MACRO CHANNELS DISPLA' ;42F2: 59 3A 'Y:' db CR ;42F4: 0D db " MEM-adr SFR SEARCH COUNT" ;42F5: 20 20 20 20 20 20 20 4D 45 4D 2D 61 64 72 20 20 20 20 20 53 46 ' MEM-adr SF' ;430A: 52 20 20 20 20 20 20 53 45 41 52 43 48 20 20 20 20 20 43 4F 55 'R SEARCH COU' ;431F: 4E 54 'NT' db CR,NULL ;4321: 0D 00 db "**********************************************" db CR,NULL ;4351: 0D 00 ; ; ; L4353: db "MSC0: " ,NULL ;4353: 4D 53 43 30 3A 20 'MSC0: ' db NULL ;4359: 00 L435a: db "MSC1: " ,NULL ;435A: 4D 53 43 31 3A 20 'MSC1: ' db NULL ;4360: 00 L4361: db "MSC2: " ,NULL ;4361: 4D 53 43 32 3A 20 'MSC2: ' db NULL ;4367: 00 L4368: db "MSC3: " ,NULL ;4368: 4D 53 43 33 3A 20 'MSC3: ' db NULL ;436E: 00 L436f: db "MSC4: " ,NULL ;436F: 4D 53 43 34 3A 20 'MSC4: ' db NULL ;4375: 00 L4376: db "MSC5: " ,NULL ;4376: 4D 53 43 35 3A 20 'MSC5: ' db NULL ;437C: 00 L437d: db "MSC6: " ,NULL ;437D: 4D 53 43 36 3A 20 'MSC6: ' db NULL ;4383: 00 L4384: db "MSC7: " ,NULL ;4384: 4D 53 43 37 3A 20 'MSC7: ' db NULL ;438A: 00 L438b: db " " ,NULL ;438B: 20 20 20 20 ' ' ; ;438F: 00 ; ; ; subroutine_4390: push ax _4391: push bx _4392: cmp al,0x60 _4394: jz _43bd _4396: cmp al,0x61 _4398: jz _43bd _439a: cmp al,0x9c _439c: jz _43c3 _439e: cmp al,0x9d _43a0: jz _43c3 _43a2: cmp al,0x6a _43a4: jz _43c9 _43a6: cmp al,0x68 _43a8: jz _43d4 _43aa: shr al,byte 3 _43ad: and al,3 _43af: cbw _43b0: shl ax,1 _43b2: mov bx,0x440a _43b5: add bx,ax _43b7: mov bx,[cs:bx] _43ba: jmp short _43fe _43bc: nop _43bd: mov bx,0x4424 _43c0: jmp short _43fe _43c2: nop _43c3: mov bx,0x4420 _43c6: jmp short _43fe _43c8: nop _43c9: mov cx,1 _43cc: mov byte [0x136],2 _43d1: jmp short _43dc _43d3: nop _43d4: mov cx,2 _43d7: mov byte [0x136],1 _43dc: mov bx,[0x13f] _43e0: mov al,[es:bx+si] _43e3: mov [bx+0x141],al _43e7: push bx _43e8: sub bx,[0x13f] _43ec: add bx,0x12e _43f0: mov [bx],al _43f2: pop bx _43f3: inc bx _43f4: loop _43e0 _43f6: mov [0x13f],bx _43fa: mov bx,[0x12e] _43fe: mov [0x12e],bx _4402: mov byte [0x14c],1 _4407: pop bx _4408: pop ax _4409: ret ; _440a: sbb [si+0x12],ax _440d: inc sp _440e: sbb ax,0x1544 _4411: inc sp _4412: push ax _4413: push bx _4414: add [si+0x53],al _4417: xor [bx+si],al _4419: inc sp _441a: push bx _441b: xor [bx+si],ax _441d: push bx _441e: push bx _441f: add [bx+si+0x53],dl _4422: push di _4423: add [bp+si+0],dl _4426: aas ; all zeros _4427: add [bx+si],al _4429: add [bx+si],al ; until here: ; .org $ffef _ffef: add dl,ch _fff1: db 0,0,0,0,0,0,0 _ffff: db 0